20155217 2016-2017-2 《Java程序设计》第4周学习总结
教材学习内容总结
第六章
- 在java中,继承时使用extends关键字,private成员也会被继承,只不过子类无法直接存取,必须通过父类提供的方法来存取(如果父类愿意提供方法的话)。
- 检查多态语法逻辑是否正确,方法是从=右边开始读:右边是不是一种左边呢?
- 多态:单一接口操作多种类型的对象。
- java中规定内含抽象方法的类,一定要在class前标示abstract,表示这是一个定义不完整的抽象类。
- 被声明protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。
- java中有public、protected和private三个权限关键字,但实际上有四个权限范围。
- 如果想取得父类中的方法,可以在调用方法前,加上super关键词。重新定义方法时要注意,对于父类中的方法权限,只能扩大不能缩小。如果返回类型是父类中方法返回类型的子类,也是可以编译的。
- 如果子类构造函数中没有指定执行父类中哪个构造函数,默认会调用父类中无参构造函数。如果想执行父类中某构造函数,可以使用super()指定。this()和super()只能选择一个调用,且必须在构造函数的第一行。
第七章
- 对于“定义行为”,可以使用interface关键词定义,接口中的方法不能操作,直接标示为abstract,而且一定是public。类要操作接口,必须使用implements关键字。操作接口时,对接口定义的方法有两种,一是操作接口中定义的方法,二是再度将该方法标示为abstract。
- 对于接口语法的判断,方式是“右边是不是拥有左边的行为”。
- 类可以操作两个以上的类,也就是拥有两种以上的行为。类可以同时继承某个类,并操作某个接口。接口可以继承另一个接口,也就是继承父接口行为,再在子接口额外定义行为。接口可以继承别的接口,也可以同时继承两个以上的接口,同样也是使用extends关键词,这表示继承父接口的行为。
- 使用interface来定义抽象的行为外观,方法要声明public abstract,无须且不能操作。为了方便,也可以省略public abstract。
- 可以使用接口枚举常数,只能定义public static final。为了方便,public static final可以省略。
- 如果有临时继承某个类或操作某个接口并建立实例的需求,而这类子类或接口类只能使用一次,不需要为这些类定义名称,这时可以使用匿名内部类来解决这个需求。匿名类语法为:
new 父类()|接口(){
//类本体操作
};
部分代码截图:
教材学习中的问题和解决过程
-
问题1:
既然在java中,子类只能继承一个父类,那如果在定义类时没有使用extends关键字指定继承任何类,则说明了什么?
-
解决方案1:
在java中,任何类追溯至最上层父类,那一定是java.lang.Object,也就是java中的所有对象。所以定义类时没有使用extends继承则一定是继承了java.lang.Object。
-
问题2:
如果有两个接口都定义了某方法,那操作这两个接口的类会不会有错误?
-
解决方案2:
不会有错误,会照样通过编译。但在设计上要思考一下:两个接口都定义的方法是否表示不同的行为。
代码调试中的问题和解决过程
按照课本敲得代码没有问题,但实际自己写代码并没有头绪,还要多问多想多练。
代码托管
-
代码提交过程截图:
-
代码量截图:
上周考试错题总结
- 错题及原因
- System.out.printf(""+25+52);
- System.out.printf(25+52+"");
答案:
- 2552
- 77
其他(感悟、思考等,可选)
java的学习明显感觉到越来越吃力,后面的内容与前面的知识点联系紧密,但往往对前面知识掌握不熟练,拖了后腿。希望以后能改善。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 5/5 | 1/4 | 20/20 | |
第二周 | 140/145 | 1/5 | 18/38 | |
第三周 | 330/451 | 1/6 | 16/54 | |
第四周 | 578/1038 | 1/7 | 18/72 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:20小时
实际学习时间:18小时
改进情况:多看书,熟悉每章知识点,尽快使知识之间串联起来。