您的位置:首页 > 理论基础 > 数据结构算法

20162303 2016-2017-2 《程序设计与数据结构》第六周学习总结

2017-04-09 18:06 344 查看

20162303 2016-2017-2 《程序设计与数据结构》第六周学习总结

教材学习内容总结

通过继承来创建类,比从零开始编写代码来的更快、更容易也更经济。

继承在父类与子类之间建立了is-a关系。

子类的实例不依赖于父类的实例。

继承是单向的。

变量或方法声明为保护可见性时,其封装性不如声明为私有时严格,但比声明为公有时要好。UML类图中,在保护成员加上#说明保护可见性。

构造方法不能继承。

super可用在一个类中,用来指向其父亲。

子类可以重写(重定义)继承自父类的方法。

派生于父类的子类还可以是自己子类的父类,形成了类层次。

公共特性应该放到类层次中尽可能高的位置上。

抽象类不能实例化,它提供的概念可由其他类定义。在UML类图中,抽象类和抽象方法的名称用斜体表示。

私有成员也被子类继承,但不能通过名字直接引用。可以间接引用。

使用final修饰符可以限制继承。

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

问题1:程序8.1,8.2,8.3三个存在父子类关系,但他们之间的关系不是特别清楚,通过书上的UML图就可以清晰明了的看出他们的继承关系。



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

问题1:没有理解程序8.10、8.11、8.12中的具体算法

首先通过8.10调用8.12,8.12Pizza类继承于8.11FoodItem。



代码托管

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



上周考试错题总结

错题1 An array declared as an int[] can contain elements of different primitive types.(用int[]声明的数组,元素类型可以是所有基本类型)错误。

已声明具有特定类型的数组可能只包含该类型的元素。在这种情况下,数组只能包含整数。

错题2 Suppose we wanted to process a text file called “input.txt” using the Scanner object. Which of the following lines of code correctly creates the necessary Scanner object?(假如我们想用Scanner对象处理文件名为“input.txt”的文本文件,下面哪行代码正确的创建了Scanner对象)

A .Scanner inputFile = new Scanner(“input.txt”);

B .Scanner inputFile = new Scanner(new InputFile(“input.txt”);

C .Scanner inputFile = new Scanner(new File(input.txt);

D .Scanner inputFile = new Scanner(new InputFile(input.txt);

E .Scanner inputFile = new Scanner(new File(“input.txt”);

正确答案: E

扫描仪构造函数需要将文件对象引用为参数,所以选择A、B和D是不正确的。文件对象的构造函数包含一个字符串,所以选择C是不正确的。因此,选择E是正确的。

错题3 Which of the following statements best describes the flow of control in the main method of a Java program that has no conditionals or loops? (在没有条件和循环语句的情况下,对于Java程序中main方法的描述,下面哪个选项最为合适?)

A .Program statements are all executed at the same time.(程序语句同时执行)

B .Program statements are executed according to their priority, which is specified by the programmer.(程序语句根据程序员指定的优先级按优先级执行)

C . Program statements are executed linearly, with earlier statements being executed first.(程序语句顺序执行,前面的语句先执行)

D .Program statements are executed linearly, with later statements being executed first.(程序语句顺序执行,后面的语句先执行)

E . Some program statements are executed at the same time, and others are executed in a linear manner. (有的程序语句同时执行,有的语句顺序执行)

正确答案: C

java程序中的程序语句的执行线性当没有条件语句或循环。这意味着在代码中出现较早的语句在代码后面出现的语句之前执行。

错题4 输入"cd"命令并按回车键后,将会出现什么情况?

A .从当前目录切换到根目录

B .屏幕显示当前目录

C .从当前目录切换为上一级目录

D .从当前目录切换到用户主目录

正确答案: D

cd 等价于cd ~,也就是cd /home/userXXX

错题5 已知某用户stud1,其用户目录为/home/stud1。如果当前目录为/home,使用一下哪个命令后可以进入/home/stud1/test?

A .cd home B .cd stud1/test C .cd /stud1/test D .cd test

正确答案: B

看错了,很遗憾

点评模板:

基于评分标准,我给本博客打分:8分。

20162307

参考示例

点评过的同学博客和代码

20162307

20162306

20162322

20162321

20162318

20162326

20162314

其他

这周的时间也比较少,所以内容也比较少,相对来说学习的进度还是比较快的,学的也比之前顺畅多了。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周75/751/110/10
第二周200/2451/212/22
第三周363/6081/318/40
第四周926/15342/530/70
第五周1121/26551/620/90
第六周328/29831/710/100
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

计划学习时间:20小时

实际学习时间:10小时

改进情况:

(有空多看看现代软件工程 课件

软件工程师能力自我评价表)

参考资料

《Java程序设计与数据结构教程(第二版)》

《Java程序设计与数据结构教程(第二版)》学习指导
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐