教材学习内容总结
-
1.抽象类与接口:实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。所以说,接口可以说是比较简单、纯粹的抽象类
-
2.接口的特点:变量默认是public static final 型
方法默认都是 public,abstract类型的,都是抽象方法。 -
3.接口与继承的关系: 一个接口可以继承其他接口;一个类通过关键字implements声明要实现一个接口,继承一个类用extends。
-
4.多态:存在的必要条件 一、要有继承;
二、要有重写;
三、父类引用指向子类对象。特点 :1.多态对已存在代码具有可替换性 2.增加新的子类不会对多态产生影响。新加子类更容易获得多态功能。
教材学习中的问题和解决过程
-
问题1:java中类是单继承的,但是接口的继承为什么可以实现多继承?
-
问题1解决方案:不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,那么A就无法选择继承哪一个了。但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口。
-
问题2: 多态中变量为什么不能重写但是方法却可以呢?
-
问题2解决方案:当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法重写了父类中的方法。重写不能重写父类的私有方法,只能重写可继承的方法。重写是相对与方法的,不存在变量重写的概念,所以重写对于变量的作用是间接的。
代码调试中的问题和解决过程
- 问题1:我的IDEA无法克隆
- 问题1解决方案:没有解决,只好在idea上打完,在复制黏贴到自己的文件夹里上传。
代码托管
上周考试错题总结
- 1.vi中哪条命令是不保存强制退出? 选C。。这个真是看错了
A
:wq
B
:wq!
C
:q!
D
:q
-
2.下面哪些Linux 命令可以ASCII码和16进制单字节方法输出Hello.java的内容? BC 因为-b 是以八进制输出,背下来。
:
A .
od -b -tx1 Hello.java
B .
od -tcx1 Hello.java
C .
od -tc -tx1 Hello.java
D .
od -tbx1 Hello.java -
3.When a variable is declared in a subclass has the same name as a variable declared in a superclass, it is called a _______________ variable(当子类声明的变量和超类声明的变量相同时,该变量称为____变量).:
A . final
B . shadow(隐藏)
C . static
D . dead(死亡)
E . this is not allowed in Java(Java禁止变量名相同)this is not allowed in Java(在Java中这是不允许的)
选E 一个隐藏变量变为一个具有相同名称的类变量会作为一个父类的变量存在。
- 4.A class declared as final _________________________________ (声明为final的类_____).:
A . cannot be changed(不能更改).
B . cannot have subclasses(不能拥有子类).
C . cannot have superclasses(不能拥有超类).
D . has several abstract methods(具有几个抽象方法).
E . cannot be used in a program(不能在程序中调用).
选B 因为继承被限制,而且最终的类不能有子类。
-
5.Methods and variables declared as private in a parent class cannot be accessed in a child class(在父类中声明为private的方法和变量不能被子类访问).:
A . true
B . false
选A
为了使子类能够访问父类的私有数据和方法,应使用受保护的修饰符声明它们,而该修饰符仍然强制封装,但允许继承层次结构的灵活性。 -
6.Once a method is overridden in a subclass, the original version can never be referenced from within the subclass(一旦方法被子类重写,原有的方法不能再在子类中引用).:
A . true
B . false 这个是看错了。。选B -
7.- 在JDK5以上的环境编译与执行,则显示的结果是
A .
true、true
B .true、false
C .false、true
D .编译失败
试了一下的确如此。 A
结对及互评
这个周的学习中春旺同学对我帮助依旧很大,比如我对方法构造不是很理解,看完视频后依旧有很多不懂的地方除了在网上查资料也有很多是在他的帮助下解决的。
点评过的同学博客和代码
其他(感悟、思考等,可选)
这个周有实验,时间逼的很紧,所以这次学习是书和实验一把抓,时间节省了但是效果也并没有差太多,以后要多尝试几次。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 74/74 | 1/1 | 20/20 | |
第二周 | 329/403 | 1/2 | 14/34 | |
第三周 | 269/672 | 1/3 | 16/50 | |
第四周 | 989/1661 | 2/5 | 24/74 | |
第五周 | 623/2284 | 1/6 | 12/86 | |
第六周 | 406/2690 | 1/7 | 10/96 | |
第七周 | 785 /3475 | 2/9 | 10/106 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:12小时
-
实际学习时间:10小时
-
改进情况:改进方法后时间短了很多。
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)