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

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

教材学习内容总结

本周学习了第九章的相关内容,主要学习了:

  • 1、后绑定:多态引用可以指向不同类型在不同的时候的对象、在运行时才将方法调用与它的定义绑在一起;
  • 2、通过继承实现多态:引用变量可以指向声明继承于它的任意类的对象;
  • 3、接口:接口层次,Comparable接口,Iterator接口;
  • 4、通过接口实现多态:事件处理

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

  • 问题:对于comparable接口的意义和用法不太理解。
  • 解决过程:通过上网查阅博客,通过对什么是comparable接口?能实现什么方法?
    以及实例,对comparable接口有了一定的了解。

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

  • 问题1、与书上代码一致却因count无法通过编译
  • 解决过程:将count删除即可(并不清楚为什么。。。。)

代码托管

  • 代码提交过程截图:

  • 代码量截图:

上周考试错题总结

  • 第五周测试
    1、下面哪条命令可以把 f1.txt 复制为 f2.txt ?(AC)
    A .cp f1.txt f2.txt
    B .copy f1.txt f2.txt
    C .cat f1.txt > f2.txt
    D .cp f1.txt | f2.txt
    E .copy f1.txt | f2.txt
    解析:copy是Windows下的命令。cat f1.txt > f2.txt 通过输出重定向实现了复制。

2、以下哪类方法没有任何返回值类型(甚至没有void返回值类型)?(D)
A .methods declared as static(声明为static的方法)
B .methods declared as public(声明为public的方法)
C .methods declared as private(声明为private的方法)
D .constructors(构造函数)
E .all of the above have return types(以上均有选项均有返回值类型)
解析:构造函数是唯一没有任何返回类型的方法。他们甚至没有一个void返回类型。所有其他的方法必须指定返回类型或被宣布为无效。

3、以下哪个方法头部最有可能是设值方法的头部?(D)
A .public int getAge()
B .public double computeSalary()
C .public Person()
D .public void setAge(int newAge)
E .none of these are headers for a mutator method(以上均不是设值方法的头部)
解析:调整器的方法,改变一个实例变量的值,通常被称为“setter。“因此,选择d是正确答案。选择的是一个头访问器方法,通常被称为“getter。“选c是一个构造函数,选择b是一个类方法。

4、___引用总是指向当前正运行的对象.(E)
A .null B .static C .final D .actual E.this
解析:这个引用总是指当前执行的对象。一个空引用,不指向任何对象的引用。其他三个选择并不特别引用在Java中。

5、___是为了解决问题而进行的一步步的处理过程.(D)
A .UML diagram(UML类图) B .aggregate object(对象聚合) C .class(类)
D .algorithm(算法) E .none of the above(以上均不是)
解析:一个算法是一个循序渐进的解决方案解决问题。UML图是一种视觉代表类和对象如何交互。一个聚合对象是由一个对象,在某种程度上,其他的对象。一个类可以被认为是一组对象的蓝图。

6、所有方法必须指定一个返回值类型(构造方法除外),以下哪个方法的返回值类型不返回任何值?(D)
A .int B .public C .double D .void
E .none of the above
解析:不需要返回任何数据的方法应该无效指定为返回类型。不能有公共方法指定为返回类型,所以选择b是不正确的。选择a和选择c指定返回类型,因此他们必须返回的数据类型。

7、____对象是由其他对象组成,或者至少是部分由其他对象组成的对象.(B)
A .static(静态) B .aggregate(聚合) C .encapsulated(封装)
D .private E .public
解析:一个聚合对象是由其他对象。选择a,d和e不引用类型的对象。封装对象可能是由原始类型或对象类型。

8、如果一个服务非常复杂,以至于不能用一个方法来实现,一般通过将方法分解成几个____支撑方法.(C)
A .static B .aggregate(聚合) C .private(私有)
D .public E .final
解析:私人支持方法非常有用当服务被定义在一个单一的方法太过复杂。因此选c是正确的。

9、在方法的结尾,返回语句不是必需的(√)
解析:不需要返回语句的返回类型的构造函数或方法声明无效。

  • 第五周测试总结:这周考试遭遇“滑铁卢”,主要原因还是在于对于之前学习的内容没有及时复习,才导致考试时有许多基础知识出现错误,导致成绩不好。

  • 第六周测试
    1、通过继承派生出新类的原有类称为____.(D)
    A .a superclass(超类) B .a parent class(父类 ) C .a base class(基类)
    D .all of the above(以上都正确) E .neither a, b, nor c(以上都不正确)
    解析:原来的类可以被称为一个超类,父类和/或一个基类。

2、如果子类构造函数没有显式调用超类的构造函数,那么________.(C)
A .a run-time error will result(将产生运行时错误).
B .a compile-time error will result(将产生编译时错误).
C .the constructor will be called anyway(构造函数不管怎样都会被调用).
D .the class will be implicitly declared as abstract(该子类将被隐式声明为abstract).
E .none of the above(以上都不是)
解析:子类的构造函数将隐式地调用超类的构造函数如果没有显式地完成。这将确保正确地初始化的类。

3、一旦方法被子类重写,原有的方法不能再在子类中引用。(×)

4、在Java中子类只能继承一个父类(√)
解析:允许一个子类扩展多个父类会导致多重继承,这在Java不支持。

5、如果有以下的程序代码:
int[] arr1 = {1, 2, 3};
int[] arr2 = new int[arr1.length];
arr2 = arr1;
for(int value : arr2) {
System.out.printf("%d", value);
}
以下描述何者正确?(A)
A .执行时显示123
B .执行时显示12300
C .执行时出现 ArrayIndexOutOfBoundException 错误
D .编译失败

结对及互评

  • 第九章的学习依旧是以概念性的内容居多,本周和李昱兴同学的及对学习还是以相互督促看视频、看教材和敲代码为主。李昱兴同学在面对高数、大物等多方面压力下还是能按时完成任务,并在周测中取得好成绩,还是很腻害的(膜拜大神~)。

点评过的同学博客和代码

其他

  • 这周上了三节课,又正赶上了学生会的素拓,真的是身心俱疲。。。
  • 近几周的概念性的知识比较多,发现只要认真看了视频和教材在考试中成绩都不会差,但是经过一节实验课之后发现,自己对于前几章的知识掌握的还是不够好。理论只有熟于心才能顺于手,看来这几周需要为之前“还债”了。。。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 15篇 300小时
第一周 63/63 1/1 10/10
第二周 349/412 1/2 20/30
第三周 294/706 1/3 15/45
第四周 808/1518 1/4 25/70
第五周 561/2079 1/5 25/95
第六周 556/2635 1/6 20/115
第七周 377/3012 1/7 20/135

参考资料

posted @ 2017-04-16 19:29  20162306陈是奇  阅读(186)  评论(5编辑  收藏  举报