2017-2018-2 20165325 实验三《Java面向对象程序设计》实验报告
一、敏捷开发与XP实践-1
1、检查点要求
实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA
参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安装alibaba 插件,解决代码中的规范问题。
在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能。提交截图,加上自己学号水印。
public class CodeStandard {
public static void main(String [] args){
StringBuffer buffer = new StringBuffer();
buffer.append('S');
buffer.append("tringBuffer");
System.out.println(buffer.charAt(1));
System.out.println(buffer.capacity());
System.out.println(buffer.indexOf("tring"));
System.out.println("buffer = " + buffer.toString());
if(buffer.capacity()<20)
buffer.append("1234567");
for(int i=0; i<buffer.length();i++)
System.out.println(buffer.charAt(i));
}
}
2、运行截图
修改前:
修改后:
使用code->Reformat对齐后:
Code菜单中我感觉最好用的功能是Generate,能迅速产生getter、setter、equals等方法;
二、敏捷开发与XP实践-2
1、检查点要求
在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;
提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。
2、运行截图
Complex测试成功:
已经将改动上传至搭档的码云:
git log日志:
三、敏捷开发与XP实践-3
1、检查点要求
实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA
完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。
2、重构
当我看完了搭档的Fushu.java
代码之后,我发现了很多需要优化的地方。
完成实验项目二的文件Fushu.java
码云链接如下:
我将自己的几点想法总结如下:
- 首先
Fushu
这个类完全是多余的,没有必要把他作为内部类Complex
的外嵌类; - 仔细观察
Fushu
这个类,其中的main
方法的主要目的其实是为了进行测试; toString
类最好能规范为Generate
生成的默认格式;
基于这三点想法,我逐渐形成了自己的重构思路。完成重构后的代码截图(部分):
上传日志截图:
码云链接:
3、搭档的Complex项目码云链接
20165320Gst丶Paul / BESTI.IS.Java2018 / exp2 / Complex /
四、敏捷开发与XP实践-4
1、检查点要求
参考 http://www.cnblogs.com/rocedu/p/6683948.html,以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。
提交学习成果码云链接和代表性成果截图,要有学号水印。
2、代表性成果截图
3、成果项目码云链接
https://gitee.com/BESTI-IS-JAVA-2018/20165325/tree/master/Exp3_Des
遇到的问题及部分解决方案
1、alibaba 插件下载出错
在下载alibaba 插件时出现如下错误:
Plugin Alibaba Java Coding Guidelines was not installed: Cannot download'https://plugins.jetbrains.com/pluginManager/?action=download&;id=com.alibaba.p3c.smartfox&build=IU-172.4343.14&uuid=9f9fc264-a025-47ed-9bdc-c12871794d1c': Read timed out
如图所示:
我的解决方案是:把电脑的网络由宿舍网换成了手机WiFi热点,不要笑我,这似乎确实是网络的问题,参考链接:《阿里巴巴Java开发手册》扫描插件正式发布--插件安装和使用分析
但是安装之后,发现还是不行,我真NC了,上面错误明显是 Read timed out !
于是我马上断开我的wifi,用我手机开了个热点,一试之后,下载蹭蹭的!开心!
【总结:如何报这个错误,请检查网络】
所以说似乎确实是网络的问题,另外文中提到:
IDEA版的插件 :
我们发布到了IDEA官方仓库中(最低支持版本14.1.7,JDK1.7+)
这个也可能导致错误(不过我的版本没问题,排除这种可能性)。
2、关于git log
git log
功能只能看在本机上传(或同步)的commit日志。在本次实验的第二项中,我们起初以为一个人上传以后,两个人都能用git log
看见码云的commit日志,实际上只有上传者能看见。
3、关于IDEA的重构
老师的链接给的是关于Eclipse的重构,关于IDEA的重构我自己在网上找到了一些资料,总结如下:
- IDEA 重构快捷键:
重命名文件、方法、属性等(rename):SHIFT+F6
提取当前选择为变量(extract variable):CTRL+ALT+V
提取当前选择为属性(extract field):CTRL+ALT+F
提取当前选择为常量(extract constant):CTRL+ALT+C
提取当前选择为方法(extract method):CTRL+ALT+M
提取当前选择为方法参数(extract parameter):CTRL+ALT+P
重构类、方法(change signarture):CTRL+F6
提取代码块至if、try等结构中(surround with):CTRL+ALT+T
创建模块文件等(new):CTRL+ALT+N
创建测试用例(test):CTRL+SHIFT+T
重构菜单(refactor for this):CTRL+T
- 参考链接:
4、如何判断两个StringBuffer相等
之前在做结对编程的时候遇到了这个关于StringBuffer的问题,这次再次出错,总结一下:
- 书上知识没有掌握充分;
- 没有及时把解决问题的方法记录在博客里;
那么现在我们来“亡羊补牢”:
首先浅谈一下String
和StringBuffer
的几点区别:
String
是final
类,不允许继承,对于append
这样的操作只能新建new String
,而StringBuffer
是可变类,不需要重新new StringBuffer
,所以在字符串操作上性能非常好。String
的equals
方法因为重写了Object
的equals
方法,所以可以比较字符串的内容,而StringBuffer
因为没重写equals
方法,直接继承了Object
的equals
方法,所以不行。
那么如何比较StringBuffer
字符串内容是否相等呢?
总结一下:可以使用toString()
方法将StringBuffer
的内容转换为String
字符串,再使用equals()
方法比较。
5、找不到SDK
实际上这是关于Android Studio
的东西,我暂时先放在这一篇博客里面。
刚刚安装好了Android Studio
以后,以一次打开出现了错误代码:
unable to access android sdk-on list
在老师的博客指导里面让我们下载SDK,其实我们可以让Android Studio
自己下载,因此在下图中你只需要点cancel
就行。
参考链接:unable to access android sdk add-on list
2017-2018-2 20165325 实验三《Java面向对象程序设计》实验报告的更多相关文章
- 20145208 实验三 Java面向对象程序设计
20145208 实验三 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...
- 实验二Java面向对象程序设计实验报告(2)
实验二 Java面向对象程序设计 实验概述: 课程:程序设计与数据结构 班级:1623班 姓名: 邢天岳 学号:2309 指导老师:娄老师 王老师 实验日期:2017.4.16 实验名称: Java面 ...
- 20145213《Java程序设计》实验二Java面向对象程序设计实验报告
20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...
- 20145206《Java程序设计》实验二Java面向对象程序设计实验报告
20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
- 20145308刘昊阳 《Java程序设计》实验二 Java面向对象程序设计 实验报告
20145308刘昊阳 <Java程序设计>实验二 Java面向对象程序设计 实验报告 实验名称 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面相对象三要素:封 ...
- 20162311 实验二 Java面向对象程序设计 实验报告
实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...
- 实验二 Java面向对象程序设计实验报告
实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 实验 ...
- 20145326《Java程序设计》实验二Java面向对象程序设计实验报告
20145326<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
- 20155217 实验二 Java面向对象程序设计 实验报告
20155217 实验二 Java面向对象程序设计 实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模 ...
- 20145219 《Java程序设计》实验二 Java面向对象程序设计实验报告
20145219 <Java程序设计>实验二 Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S. ...
随机推荐
- Hbase记录-HBase性能优化指南
垃圾回收优化当region服务器处理大量的写入负载时,繁重的任务会迫使JRE默认的内存分配策略无法保证程序的稳定性 所以我们可能需要对region服务器的垃圾回收机制进行一些参数调整(因为master ...
- 用jquery的ajax方法获取return返回值的正确姿势
如果jquery中,想要获取ajax的return返回值,必须注意两方面,ajax的同步异步问题,在ajax方法里面还是外面进行return返回值. 下面列举了三种写法,如果想成功获取到返回值,参考第 ...
- HDU 1011(星河战队 树形DP)
题意是说在一个洞穴中有许多房间,每个房间中有一些虫子和大脑,这些房间之间用隧道相连形成一棵树,士兵们杀虫子的能力有限,也可以直接杀死虫子而不消耗士兵战斗力,但这样就无法得到房间中的大脑,士兵们不能走回 ...
- IntelliJ IDEA 2017 配置Tomcat 运行Web项目
以前都用MyEclipse写程序的 突然用了IDEA各种不习惯的说 借鉴了很多网上好的配置办法,感谢各位大神~ 前期准备 IDEA.JDK.Tomcat请先在自己电脑上装好 好么~ 博客图片为主 请多 ...
- node 跨域请求设置
http.createServer((req,res)=>{ //设置允许跨域的域名,*代表允许任意域名跨域 res.setHeader("Access-Control-Allow-O ...
- 一个强大的VS代码搜索工具
最近一直在寻找一款VS代码搜索插件,终于找到了一个不错的,仅支持vs2012以上. https://marketplace.visualstudio.com/items?itemName=mario- ...
- Reshaper安装后vs快捷键不起作用
做如上设置
- 三十七、Linux 线程——线程清理和控制函数、进程和线程启动方式比较、线程的状态转换
37.1 线程清理和控制函数 #include <pthread.h> void pthread_cleanup_push(void (* rtn)(void *), void *arg) ...
- seleniums私房菜系列一 ---- selenium简介
一.Selenium是什么? Selenium是ThroughtWorks公司一个强大的开源Web功能测试工具系列,本系列现在主要包括以下4款: 1.Selenium Core:支持DHTML的测试案 ...
- 高并发秒杀系统--mybatis整合技巧
mybatis实现DAO接口编码技巧 1.XML文件通过namespace命名空间关联接口类 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD ...