java面向对象程序设计董小圆_2017-2018-2 20165325 实验三《Java面向对象程序设计》实验报告...

这篇博客详细记录了作者在Java面向对象程序设计的学习过程中,进行敏捷开发与XP实践的经验,包括代码格式化、JUnit单元测试、重构、解决IDEA插件问题和git log的使用。作者通过实例分享了重构思路,以及遇到的网络问题和IDEA重构快捷键的总结。
摘要由CSDN通过智能技术生成

c986d56ad8086ed14d2dc0f1cfb76c58.png

一、敏捷开发与XP实践-1

1、检查点要求

在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

System.out.println(buffer.charAt(i));

}

}

2、运行截图

修改前:

66237ee0e823ff0e0b47440a62976fd3.png

修改后:

fefcc20198f4c82e8173d1c95110d83c.png

使用code->Reformat对齐后:

b705cfe9c4e3c0d32a088747e6b29b20.png

Code菜单中我感觉最好用的功能是Generate,能迅速产生getter、setter、equals等方法;

二、敏捷开发与XP实践-2

1、检查点要求

在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;

提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。

2、运行截图

Complex测试成功:

b4403d61156f0d6f0e0e4a00805721e2.png

已经将改动上传至搭档的码云:

50bc9c3be9db8984a60a1879e093006b.png

git log日志:

fd3459963b84057dac98aef93214c04a.png

三、敏捷开发与XP实践-3

1、检查点要求

完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。

2、重构

当我看完了搭档的Fushu.java代码之后,我发现了很多需要优化的地方。

完成实验项目二的文件Fushu.java码云链接如下:

我将自己的几点想法总结如下:

首先Fushu这个类完全是多余的,没有必要把他作为内部类Complex的外嵌类;

仔细观察Fushu这个类,其中的main方法的主要目的其实是为了进行测试;

toString类最好能规范为Generate生成的默认格式;

基于这三点想法,我逐渐形成了自己的重构思路。完成重构后的代码截图(部分):

68329321d50885e3dbe47f45cef73291.png

上传日志截图:

efa18d0418fa0ed8c15bd953dc0bb255.png

码云链接:

3、搭档的Complex项目码云链接

四、敏捷开发与XP实践-4

1、检查点要求

提交学习成果码云链接和代表性成果截图,要有学号水印。

2、代表性成果截图

ada449c527ea4bce78dcce5cc489d7b1.png

dc32fa416190248190abdab51e0cbddc.png

26bf2884eb258537368b2f31379112cf.png

3、成果项目码云链接

遇到的问题及部分解决方案

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

如图所示:

2a0a6f1e2e5024cbddee53e060f745d6.png

我的解决方案是:把电脑的网络由宿舍网换成了手机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就行。

6f8ea49b8fe14999f686c2f1430edb6f.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值