首页
登录 | 注册

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

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

教材学习内容总结

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

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

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

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

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

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

代码托管

  • 代码提交过程截图:

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

  • 代码量截图:

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

上周考试错题总结

  • 第五周测试
    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 .编译失败

结对及互评

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

点评过的同学博客和代码

  • 20162305
  • 20162328
  • 20162330
  • 20162313
  • 20162317

其他

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

    学习进度条

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

参考资料


相关文章

  • 为什么说 Java 程序员到了必须掌握 Spring Boot 的时候?
    Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,就单从我个人的博客的访问量大幅增加就可以感受到大家对学习 Spring Boot 的热情,那么在这么多人热衷于学习 Spring Boot 之时,我自己也在 ...
  • Python是什么? Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python是纯粹的自由软件, 源代码和解释器CPython遵循 G ...
  • 一.前言 在日常开发中,我们经常会碰到需要在运行时才知道对象个数的情况,这种情况不能使用数组,因为数组是固定数量的,这个时候我们就会使用集合,因为集合可以存储数量不确定的对象. 集合类是特别有用的工具类,不仅可以存储数量不等的对象,还可以实 ...
  • Linux的内存分页管理
    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载   内存是计算机的主存储器.内存为进程开辟出进程空间,让进程在其中保存数据.我将从内存的物理特性出发,深入到内存管理的细节,特别是了解虚拟内存和内存 ...
  • 【TOGAF】总体认知
    TOGAF是什么 TOGAF(The Open Group Architecture Framework)是当前最为流行的企业架构框架理论之一,它为一个企业或组织对于企业架构的接受.创建.使用和维护提供了一系列辅助方法和工具.基于迭代过程模 ...
  • More Effective C++
    More Effective C++ 35个改善编程与设计的有效方法 只有深入了解C++编译器如何解释代码, 才有可能用C++语言写出健壮的软件. C++的难学, 不仅在其广博的语法, 语法背后的语义, 语义背后的深层思维, 深层思维背后的 ...

2019 cecdns.com webmaster#cecdns.com
12 q. 0.067 s.
京ICP备10005923号