20165301陈潭飞2017-2018-2 20165301 实验三《Java面向对象程序设计》实验报告
2017-2018-2 20165301 实验三《Java面向对象程序设计》实验报告

一、敏捷开发与XP实践-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<buffer.length();i++)
System.out.println(buffer.charAt(i));
}
}
实验截图
- 在IDEA中点击setting---Plugins---Brows Repositories,搜索alibabba并下载

- 在项目上右击选择编码规约扫描

- 格式化之前

- 格式化之后

- 使用code->Reformat对齐后

二、敏捷开发与XP实践-2
实验要求
- 在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。
实验截图


三、敏捷开发与XP实践-3
实验要求
- http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA
- 完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。
实验内容及截图
- 重构(Refactor),就是在不改变软件外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变更 。 
- 重构方法 

- 重建快捷键 - 重命名文件、方法、属性等(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
 
- 重命名文件、方法、属性等(rename):
- 重构过程 
重构前的代码
public class csj
{
    public static int csj(int n)
    {
        if(n>=0)
            if(n==0||n==1)
                return n;
            else
                return csj(n-2)+csj(n-1);
        return -1;
    }
    public static void main(String args[])
    {
        int m=25,n;
        int fib[]=new int[m];
        for(n=0;n<m;n++)
            fib[n]=csj(n);
        for(n=0;n<fib.length;n++)
            System.out.print(" "+fib[n]);
        System.out.println();
    }
}
- 代码存在如下问题: - 类名不符合命名规则;
- 语句结构不方便阅读
 
- 实验截图 

三、敏捷开发与XP实践-3
实验内容
实验截图

实验体会与总结
- 本次实验过后我学会了alibaba插件的使用,可以很方便地规范我的代码。并且初步掌握了重构这项技能。不过由于代码理解能力不足,在重构时不容易发现程序不足之处因而无法顺利地规范代码,这是在以后应该学习进步的地方。
| 步骤 | 耗时 | 百分比 | 
|---|---|---|
| 需求分析 | 20 | 13.7% | 
| 设计 | 30 | 20.6% | 
| 代码实现 | 50 | 34.4% | 
| 测试 | 30 | 20.6% | 
| 分析总结 | 15 | 10.3% | 
20165301陈潭飞2017-2018-2 20165301 实验三《Java面向对象程序设计》实验报告的更多相关文章
- 20165301实验二java面向对象程序设计
		20165301实验二java面向对象程序设计 实验目的与要求(提交点一): 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST完成单 ... 
- 2017-2018-2 20165301 实验四《Java面向对象程序设计》实验报告
		2017-2018-2 20165301 实验四<Java面向对象程序设计>实验报告 一.Android Stuidio的安装测试 实验要求: 参考<Java和Android开发学习 ... 
- MyEclips 2017/2018 (mac 版)安装与破解
		MyEclips 2017/2018 (mac 版)安装与破解 现在在学J2EE,然后使用的工具就是 MyEclipse,现在就抛弃 Eclipse 了,我就不多说它俩的区别了,但是 MyEclips ... 
- MyEclipse 2017/2018 安装与破解 图文教程
		SSM 框架-02-MyEclipse 2017/2018 安装与破解 现在在学J2EE,然后使用的工具就是 MyEclipse,现在就抛弃 Eclipse 了,我就不多说它俩的区别了,但是 MyEc ... 
- </2017><2018>
		>>> Blog 随笔原始文档及源代码 -> github: https://github.com/StackLike/Python_Note >>> 统计信 ... 
- 2018年秋季学期面向对象程序设计(JAVA)课程总结
		2018年秋季学期面向对象程序设计(JAVA)课程总结 时值2018年年末,按惯例对本学期教学工作小结如下: 1. 教学资源与教学辅助平台 教材:凯 S.霍斯特曼 (Cay S. Horstmann) ... 
- 2018面向对象程序设计(Java)第4周学习指导及要求
		2018面向对象程序设计(Java) 第4周学习指导及要求(2017.9.19-2017.9. 26) 学习目标 掌握类与对象的基础概念,理解类与对象的关系: 掌握对象与对象变量的关系: 掌握预定 ... 
- 2017面向对象程序设计(Java)第二周学习总结
		2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ... 
- 2018面向对象程序设计(Java)第18周学习指导及要求
		2018面向对象程序设计(Java) 第18周学习指导及要求(2018.12.27-2018.12.30) 学习目标 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设 ... 
随机推荐
- 洛谷 P3338 [ZJOI2014]力 解题报告
			P3338 [ZJOI2014]力 题目描述 给出n个数qi,给出Fj的定义如下: \(F_j = \sum_{i<j}\frac{q_i q_j}{(i-j)^2 }-\sum_{i>j ... 
- 基于Memcached分布式系统DRDoS拒绝服务攻击技术研究(转)
			本次反射式拒绝服务攻击技术基于全球互联网分布式的Memcached服务器,需要储备一定得安全攻防知识,网络协议知识和python代码编程技术.希望在学习本篇文章知识前自行学习相关的基础知识,文章后面同 ... 
- 解题:POI 2007 Weights
			题面 这是个$O(nlog^2$ $n)$的解法,因为蒟蒻博主没有看懂$O(nlog$ $n)$的更优秀的解法 显然从小到大装砝码是最优的方法,又显然从大到小装容器不会使得答案变劣,还显然砝码数具有单 ... 
- 相机标定 和 单应性矩阵H
			求解相机参数的过程就称之为相机标定. 1.相机模型中的四个平面坐标系: 1.1图像像素坐标系(u,v) 以像素为单位,是以图像的左上方为原点的图像坐标系: 1.2图像物理坐标系(也叫像平面坐标系)(x ... 
- JSP2 特性
			JSP2 新特性 1.直接配置 JSP 属性 2.表达式语言 3.简化的自定义标签 API 4.Tag 文件语法 如果要使用 JSP2 语法,web.xml 文件必须使用 Servlet2.4 以上版 ... 
- 由保存当前用户引发的springboot的测试方式postman/restlet还是swagger2
			今天在测试接口的到时候发现用springboot集成swagger2集成的项目,在测试session保存的当前用户的时候,发现执行不了,没有像postman或者restlet一样,保存这个接口的url ... 
- Linux I/O缓冲
			1:两类I/O函数的缓冲机制 1.1 系统调用(System call) 这类代表就是read/write等系统函数,它们是不带缓冲的,这里的缓冲指的是进程缓冲,在内核到磁盘之间还是有内核缓冲的. 1 ... 
- 「Django」rest_framework学习系列-视图
			方式一 1.settings设置 INSTALLED_APPS = [ ... 'rest_framework', ] 2.views设置 from rest_framework.response i ... 
- Mac下安装SVN插件javaHL not available的解决方法
			在Mac下安装Eclipse插件svnEclipse插件后,每次打开Eclipse都会弹出如下弹出框: 提示你本机缺少JavaHL Library. 选择Eclipse→偏好设置(preference ... 
- svn常见错误
			1.svn提交报错:svn: Aborting commit:XXXXXremains in conflict 解决:说明Svn服务器上的对应内容,在你上次Update后已被别人修改了,而你也做了修改 ... 
