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

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

2017-04-16 19:29 459 查看

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 .编译失败

结对及互评

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

点评过的同学博客和代码

20162305

20162328

20162330

20162313

20162317

其他

这周上了三节课,又正赶上了学生会的素拓,真的是身心俱疲。。。

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

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行15篇300小时
第一周63/631/110/10
第二周349/4121/220/30
第三周294/7061/315/45
第四周808/15181/425/70
第五周561/20791/525/95
第六周556/26351/620/115
第七周377/30121/720/135

参考资料

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

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