20175327 2018-2019-2 《Java程序设计》第4周学习总结
1.教材学习内容总结
- 继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
- 多态的特征是表现出多种形态,具有多种实现方式。或者多态是具有表现多种形态的能力的特征。或者同一个实现接口,使用不同的实例而执行不同的操作。
- 多态的使用可以增强程序的可扩展性及可维护性,使代码更加简洁。不但能减少编码的工作量,也能大大提高程序的可维护性及可扩展性。
- 父类中定义了方法,实际上如何执行只有子类知道,父类里的方法内容是空的,子类继承父类,再对方法进行定义。
- 重新定义子类中某个方法时,子类必须撰写与父类方法中相同的签署。
- Java中所有对象都是一种java.lang.object等细节
- public:类内部可存取,相同包类可存取,不同包类可存取。
- private:类内部可存取,相同包类不可存取,不同包类不可存取。
- super关键字:想取得父类中的方法定义,可以在调用方法前加上
- super()和this()只能择一调用,而且要在构造函数第一行。
- 方法也可以被限定为final,表示最后一次定义方法,子类不可以再重新定义该方法。
- java中任何类追溯至最上层父类,定义时没有使用继承,一定就是java.lang.Object,所有对象一定是一种Object,任何类型的对象,都可以使用Object的名称来参考。
2.教材学习中的问题和解决过程
- 问题一:区分public、package、protected、private的关系
- 问题一解决方法:public private protected和package都是系统的实例变量的范围类型。
为了强制一个对象隐藏其数据,编译器限制实例变量范围以限制其在程序中的可见性。
具体区别如下:
-
private
实例变量只能被声明它的类访问。 -
protected
实例变量能被声明它的类和子类访问,所有没有显式制定范围的实例变量都是。 -
public
实例变量可以被在任何地方访问。 -
package
使用modern运行时,一个@package实例变量在实现这个类的可执行文件镜像中实际上是@public的,但是在外面就是@private。Objective-C中的@package与C语言中变量和函数的private_extern类似。任何在实现类的镜像之外的代码想使用这个实例变量都会引发link error这个类型最常用于框架类的实例变量,使用@private太限制,使用@protected或者@public又太开放。
3.托管代码
4.上周考试错题总结
- 错题1 System.out.println(52+25+””);的结果是(77)
- 错题2 p86 Guess.java中guess的值无法输入12。(X)
5.上周课堂总结:
未能及时完成练习,让我认识到学习Java应在时间上下功夫,认真理解每个符号,每个语法,才能有量变到质变的收获。