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

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

教材学习内容总结

  • 通过继承来创建类,比从零开始编写代码来的更快、更容易也更经济。
  • 继承在父类与子类之间建立了is-a关系。
  • 子类的实例不依赖于父类的实例。
  • 继承是单向的。
  • 变量或方法声明为保护可见性时,其封装性不如声明为私有时严格,但比声明为公有时要好。UML类图中,在保护成员加上#说明保护可见性。
  • 构造方法不能继承。
  • super可用在一个类中,用来指向其父亲。
  • 子类可以重写(重定义)继承自父类的方法。
  • 派生于父类的子类还可以是自己子类的父类,形成了类层次。
  • 公共特性应该放到类层次中尽可能高的位置上。
  • 抽象类不能实例化,它提供的概念可由其他类定义。在UML类图中,抽象类和抽象方法的名称用斜体表示。
  • 私有成员也被子类继承,但不能通过名字直接引用。可以间接引用。
  • 使用final修饰符可以限制继承。

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

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

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

  • 问题1:没有理解程序8.10、8.11、8.12中的具体算法
  • 首先通过8.10调用8.12,8.12Pizza类继承于8.11FoodItem。
    1064441-20170408220647097-1856912963.jpg

代码托管

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

1064441-20170408225335253-1301639695.png

上周考试错题总结

  • 错题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
    看错了,很遗憾

点评模板:

点评过的同学博客和代码

其他

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

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标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小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

转载于:https://www.cnblogs.com/syx390234975/p/6681669.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值