20172333 2017-2018-2 《Java程序设计》第7周学习总结

时间:2021-05-18 22:14:04

20172333 2017-2018-2 《Java程序设计》第7周学习总结

教材学习内容

1.继承是创建新类的快捷方式之一,继承可以使用父类的所有方法及对象。

2.继承具有单向性,父类不能使用子类新定义的方法与对象。

3.protected是只有父子辈才可以所共同使用的可见性修饰符或同一个包的其他类使用。

4.使用Super引用调用父类的构造方法。

5.子类只能有一个父类,但父类可以有多个子类。

6.子类可重定义父类的方法。

7.影子变量是合法但是尽可能避免的一种选择。

8.所有类如果不使用extends,则默认从Object类派生(直接或间接由Object)。


代码调试中的问题和解决过程

  • [x] 问题1:关于PP9.1的一些问题描述不太清楚。

  • 解决过程:PP9.1要求计算诺干个对象来求和,这几个对象到底是自己在代码内自己输入还是需要用Scaner方法来外部输入呢,我有点纠结,然后选择自己输入了几个对象值来进行求和操作。


教材学习中的问题和解决过程

  • [x] 问题1:抽象类与接口的区别。
  • 解决过程:在书中看到这个抽象类的时候一瞬间就把它和接口对比了一番感觉是差不多的类型,于是去百度。
    1. 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。
    1. 接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。
    1. 接口可以多继承,抽象类不行。
    1. 接口定义方法,不能实现,而抽象类可以实现部分方法。
    1. 接口中基本数据类型为static 而抽类象不是的.
    1. 当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。

点评过的同学博客和代码

  • 本周结对学习情况
    • 20172330李楠
    • 结对照片
    • 结对学习内容
      • Commit内容丰富值得学习
      • 问题及处理方法记录简洁明了。
      • 博客园主题背景色与内容形成鲜明对比,强调突出了内容,显得丰富而富有内涵。
      • 教材内容总结有理有据,对于课本知识内容掌握特别充分,明白各个知识点的具体方位。

代码托管

20172333 2017-2018-2 《Java程序设计》第7周学习总结

(statistics.sh脚本的运行结果截图)


上周考试错题总结

1.Given the following declarations, which of the following variables are arrays?
int[ ] a, b;
int c, d[ ];

A . a

B . a and b

C . a and d

D . a, b and d

E . a, b, c and d

答案:D 我选择:A

解析:第一行表现a 和b都是数组,第二行表示只有d是数组。

2.The statement int[ ] list = {5, 10, 15, 20};

A . adds 4 int values to array list

B . initializes list to have 20 int values

C . initializes list to have 4 int values

D . declares list but does not initialize it

E . causes a syntax error because it does not include "new int[4]" prior to the list of values

答案:C 我选择:A

解析:这道题我在进行选择的时候想到了老师上课讲的一个内容,大致是一个数组在创建但又未输入数据的时候,里面的内容是随机的,就想到这道题输入4个Int值进去,未必填满了数组,则只是单纯的添加了4个值而不是想到直接初始化数组了。

3.A Java main method uses the parameter (String[ ] variable) so that a user can run the program and supply "command-line" parameters. Since the parameter is a String array, however, the user does not have to supply any parameters.

A . true

B . false

答案:A 我选择:另外一个。

解析:在java命令之后,在命令行输入的任何内容都将被接受为命令行参数。

4.An array index cannot be a float, double, boolean or String.

A . true

B . false

答案 :A 我选择:不是A。

解析:数组的索引只能是Int或者int的扩展型。

5.In Java, an array can only store one type of data. For instance, you cannot create an array that stores both double and String values.

A . true

B . false

答案:A 我选择了死亡。

解析:数组内一旦定义了一个类型值,就不可能出现其他类型的值的数组除非是之前那一个类的扩展值。

6.So long as one is only accessing the elements of an ArrayList, its efficiency is about the same as that of an array. It's only when one begins to insert or remove elements towards the front portion of an ArrayList that its efficiency deteriorates.

A . true

B . false

答案:A 我选择:皮不动了呀。

解析:这道题不是很清楚,大概就是Arraylist的之前插入或删除东西会导致大量重复数据出现,导致效率大幅降低。


学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 125/125 2/2 20/20
第二周 269/394 2/4 未知/38
第三周 477/920 1/5 X/X
第四周 1179/2338 1/6 --
第五周 1131/3154 1/7 ?/?
第六周 1448/4008 1/8 ?/??
第七周 957/4840 2/10 ?/???

其他(感悟、思考等,可选)

切身体会到了王老师这周说要减缓进度的感受了,连代码数都少了至少600行了。


参考资料

Java中ArrayList类详解

IntelliJ IDEA使用教程

面向对象设计原则

实验二

接口与抽象类的区别