您的位置:首页 > 编程语言 > Java开发

Java第三次作业

2017-09-30 22:57 197 查看

1. 本周学习总结

1.1 写出你认为本周学习中比较重要的知识点关键词,如类、对象、封装等

类,对象,封装,重载,重写,继承,父类,子类,super,this

1.2 用思维导图或者Onenote或其他工具将这些关键词组织起来。



2. 书面作业

1.以面向对象方式改造数据结构作业'有理数'(重点)

1.1 截图你主要代码(需要在程序中出现你的学号和姓名)并粘贴程序的git地址。



https://github.com/dongmingchao/JavaPTA/blob/master/src/three/Rational.java

ps:范例中的代码有错,声明返回类型是Rational但是却没有返回结果,以及等等。。

1.2 对比你的代码与历程的代码,说明面向对象编程与面向过程编程有何区别?

面向过程的编程对于语句前后的顺序有要求,面向对象编程对此要求很少,且更工程化,更模块化,易于理解和维护

2. 构造函数与初始化块

2.1 结合PTA 5(构造函数与toString)说明构造函数有什么用?其函数格式有何特征?

特征:不需要声明返回值类型

作用:初始化一个类型,预处理操作

2.2 如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?

有,默认存在无参构造函数;若声明有参构造函数则没有无参构造函数

2.3 查看String类的源代码,找出3个看得懂的String类的构造函数,并使用自己的话描述这3个构造函数的区别。

public String() {
this.value = "".value;
}

取空字符串赋值即
String s = new String()
String s = ""
等效

public String(String original) {
this.value = original.value;
this.hash = original.hash;
}

字符串之间的复制

public String(char value[]) {
this.value = Arrays.copyOf(value, value.length);
}

如果参数是字符数组,就重新制造一个一摸一样的字符数组装进字符串里

2.4 结合PTA(构造函数与初始化块)说明初始化块与构造函数的异同。并说明,初始化块与构造函数谁先执行?初始化块与静态初始化块有何不同,谁先执行?

自己写了一个demo发现初始化块先执行,但是觉得这并不是全部情况,查了一下发现顺序为:

父类的静态成员赋值和静态块 (静态块和静态成员的顺序为,谁在前面谁先执行(在不出错的情况下)
子类的静态成员和静态块
父类的构造方法
父类的成员赋值和初始化块
父类的构造方法中的其它语句
子类的成员赋值和初始化块
子类的构造方法中的其它语句

3.代码分析:Math类

3.1 使用java.lang.Math类的方法时,为什么不需要new出一个Math对象,然后调用该对象上相应的方法?

因为Math类纯静态

3.2 如果new Math()会产生什么错误?尝试阅读Math类源代码,分析原因。

从报错就能看出来了,Math类私有

3.3 进一步:你觉得什么样的对象需要new出来才能用,调用什么方法时不必创建相应对象就可以使用?(重点检查)

公共非静态类才需要new,静态方法不用创建对象

4. 重载Overload

4.1 什么是重载?什么是构造函数重载?怎么才能区分两个重载的方法?

重载就是一个函数,在对参数不同的情况下作用不同的行为,区分就看参数,参数相同是重写,不同是重载

4.2 在java.lang.Math类中举出1个方法重载的例子?

abs就是

5. 代码阅读: final

final修饰的变量不能改变,为什么如下代码却可正常运行?

final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;

我觉得不可变指的是数组指向的地址,但是其实数组内容是可变的。换句话说,final的对象型变量本质上内容是可变的,只有final常量型变量才会根本不变

6. Java8中的时间日期类:编写函数
public static boolean isMondayToFriday()



7. 封装

7.1 结合PTA(形状),请用自己的话简单总结一下面向对象中封装是什么意思?有何好处?

封装就是把需要操作的东西对象化,把与其相关的操作都关联起来,这样可以大大提高代码重用率

7.2 和封装有关的关键字有哪些?

em其实我觉得java本身封装性就很强class,extends这些都算了,再加上抽象abstract和接口interface,差不多了,可以说java本身就是封装出来的

8. 结对编程实践(未完成,0分)

1.对方姓名。2.所完成的题目。3.感想。4.照片(上次很多同学并未贴照片,请贴上)

简卓林

PTA5

挺有帮助,我们互相学习了很多



3. 码云及PTA

3.1. 码云代码提交记录



3.2 截图PTA题集完成情况图





3.3 统计本周完成的代码量

上次统计时间:2017-09-24 10:11:03

距离上次统计经过了:156小时50分钟43秒

-------------------------------------

周次:3

总代码量:1072

新增代码量:652

总文件数:17

新增文件数:7

-------------------------------------

历史记录:

第3周增加的代码行数和文件数:652 7
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: