1. 本周学习总结
1.1写出你认为本周学习中比较重要的知识点关键词,如类、对象、封装等。
关键词:类、方法、属性、对象、多态、继承、封装、面向对象。
1.2 用思维导图或者Onenote或其他工具将这些关键词组织起来。
2.书面作业
1.以面向对象方式改造数据结构作业'有理数'(重点)
1 截图你主要代码(需要在程序中出现你的学号和姓名)并粘贴程序的git地址。
2 对比你的代码与历程的代码,说明面向对象编程与面向过程编程有何区别?
面向对象编程是抽象的,主要用到类,是一个封闭的环境而面向过程的编程更加注重于如何使用函数去实现既定的功能。
2. 构造函数与初始化块
1 结合PTA 5(构造函数与toString)说明构造函数有什么用?其函数格式有何特征?
构造函数可以用来在创建对象时对其属性做一些初始化的操作。 函数特征有:构造函数的特征,构造函数名称与类名相同 以及无返回类型。无参数构造函数时,直接输出题目要求的内容,有参构造时,要用到this关键字。
2 如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?
有构造函数,编译器会默认的生成构造函数。没有。如果创建了有参数的构造函数,编译器就无法默认生成构造函数。
3 查看String类的源代码,找出3个看得懂的String类的构造函数,并使用自己的话描述这3个构造函数的区别。
System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);
String c = "abc".substring(2,3);
String d = cde.substring(1, 2);>这之中所含的参数不同。
4 结合PTA(构造函数与初始化块)说明初始化块与构造函数的异同。并说明,初始化块与构造函数谁先执行?初始化块与静态初始化块有何不同,谁先执行?
相同点:两者都是给对象初始化。不同点:两个范围不同,初始化块的作用是给所有对象初始化,而构造函数的作用是给对应函数初始化。初始化块先执行。
静态初始化只执行一次,而初始化块有几个new就执行几次,而且在初始化加载时还有执行一次,静态初始化先执行。>
3代码分析:Math类
1 使用 java.lang.Math类的方法时,为什么不需要new出一个Math对象,然后调用该对象上相应的方法?
因为Math中的成员变量和方法都是静态的不需要新建Math对象。>
2 如果new Math()会产生什么错误?尝试阅读Math类源代码,分析原因.
The constructor Math() is not visible>因为是由private
构造函数,所以不能被外部调用,因此不能用new来产生新对象。
**3 进一步:你觉得什么样的对象需要new出来才能用,调用什么方法时不必创建相应对象就可以使用?(重点检查)
需要配一个存储空间保存引用时需要 new来引用,基本数据类型不需要new而直接定义
4. 重载Overload
1 什么是重载?什么是构造函数重载?怎么才能区分两个重载的方法?
重载:方法名相同但参数名不相同
构造函数重载:可以定义多个构造函数,但是参数类型不能相同。
区分:从方法的参数的数量、顺序以及它的类型来区分>
5. 代码阅读: final
1.final修饰的变量不能改变,为什么如下代码却可正常运行?
<final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;<
因为用关键字 final 修饰引用类型。这个对象无法被修改。但它所指的对象是可以修改的。
6. Java8中的时间日期类:编写函数 public static boolean isMondayToFriday()
7. 封装
1 结合PTA(形状),请用自己的话简单总结一下面向对象中封装是什么意思?有何好处?
客观事物封装成抽象的类,对一些不可信的进行信息隐藏。
好处:1.可以提高数据的安全性。
2.可以自由的调用。
2 和封装有关的关键字有哪些?
public ,private,this.
8. 结对编程实践(未完成,0分)
我结对编程的是舍友翁明强,我和他编程水平相差不大,我们讨论的是第一题jmu-Java-03面向对象基础-01-构造函数与toString我和他思路差不多不过运行起来可以,之间都有互相讨论,才得以完成。
3.2 截图PTA题集完成情况图
3.3 统计本周完成的代码量
周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
---|---|---|---|---|
3 | 220 | 220 | 11 | 11 |