目录
20182306 2019-2020-1 《数据结构与面向对象程序设计》第四周学习总结
教材学习内容总结
object类:所有Java类都直接或间接地由object类派生。(Java的每一个类都继承toString和equals方法)
继承主要表达的是“是”这个关系。子类是父类的一个更具体的类。
super用来调用父类的构造方法。
对于层次结构,我觉得就是将共用性强的类提高在较高的层次,这样引用的时候,更加的方便。同时,应知道Object类是没有父类的。
教材学习中的问题和解决过程
- 问题1:子类是否可以重写父类的所有方法。
- 问题1解决方案:构造方法时一个特殊的方法,与类名相同,但是没有返回类型。如果试图重写父类的构造方法,将会产生语法错误,因为除了构造方法之外的所有方法都必须有返回类型。
- 问题2:为什么抽象类不包含抽象代码
- 问题2解决方案:抽象类可以没有抽象方法,但是如果你的一个类已经声明成了抽象类,即使这个类中没有抽象方法,它也不能再实例化,即不能直接构造一个该类的对象。如果一个类中有了一个抽象方法,那么这个类必须声明为抽象类,否则编译通不过。对于抽象方法,一定要用
public abstract
修饰抽象方法,而private
和protected
不可以。如果一个类中有抽象方法,那么这个类一定是抽象类。
代码调试中的问题和解决过程
- 问题1:Juint出现错误
- 问题1解决方案:点击小灯泡,选择给出的方案中最便捷的一项
- 问题2:没有输入ToString
- 问题2解决方案:结果会输出一串代码,这个是地址,加入ToString输出结果
- 问题3:代码中出现中文,输出会有乱码。
- 问题3的解决方案:选择GBK
代码托管
上周考试错题总结
- 错题1
An example of passing message to a String where the message has a String parameter would occur in which of the following messages?
A .length
B .substring
C .equals
D .toUpperCase
E .none of the above, it is not possible to pass a String as a parameter in a message to a String
解析: 长度和toUpperCase消息没有参数,子字符串有两个int参数。对于等于,必须将字符串作为参数传递,以便将接收消息的字符串与作为参数传递的字符串进行比较。 - 错题2
Consider a method defined with the header: public void doublefoo(double x). Which of the following method calls is legal?
A .doublefoo(0);
B .doublefoo(0.555);
C .doublefoo(0.1 + 0.2);
D .doublefoo(0.1, 0.2);
E .all of the above are legal except for D
正确答案: E 你的答案: D
解析:在A的情况下,0(一个int)的值被加宽到双倍。在C的情况下,执行生成0.3的加法,然后调用双foo。D中的参数列表是非法的,因为它包含两个双参数,而不是1。 - 错题3
In a UML diagram for a class
A .classes are represented as rectangles
B .there may be a section containing the name of the class
C .there may be a section containing the attributes (data) of the class
D .there may be a section containing the methods of the class
E .all of the above
正确答案: E 你的答案: B
解析:这四个属性正确地描述了类的UML表示。 - 错题4
Visibility modifiers include
A .public, private
B .public, private, protected
C .public, private, protected, final
D .public, protected, final, static
E .public, private, protected, static
正确答案: B 你的答案: E
解析:公共、私有、受保护的控制变量和方法的可见性。最终控制变量、方法或类是否可以进一步更改或重写不可见性。静态控制变量或方法是否与类的实例或类本身相关联。 - 错题5
What happens if you declare a class constructor to have a void return type?
A .You'll likely receive a syntax error
B .The program will compile with a warning, but you'll get a runtime error
C .There's nothing wrong with declaring a constructor to be void
D .The class' default constructor will be used instead of the one you're declaring
E .None of the above
正确答案: A 你的答案: D
解析:声明任何类型的构造函数(甚至是void)都是违反语法的,因此您将收到一个语法错误。 - 错题6
The following method header definition will result in a syntax error: public void aMethod( );
A .true
B .false
正确答案: A 你的答案: B
解析:语法错误的原因是因为它以“;”符号结尾。相反,需要后面跟着{},括号中有0或更多的指令。抽象方法将以“;”结尾,但此标头并不定义抽象方法。 - 错题7
The interface of a class is based on those data instances and methods that are declared public.
A .true
B .false
正确答案: A 你的答案: B
解析:接口是外部代理与对象的交互方式。交互只能通过在类的定义中声明为公共的项来实现。 - 错题8
An object should be encapsulated in order to guard its data and methods from inappropriate access.
A .true
B .false
正确答案: A 你的答案: B
解析:封装是一种概念,即应该保护对象不被意外(或有目的)误用。 - 错题9
Accessors and mutators provide mechanisms for controlled access to a well-encapsulated class.
A .true
B .false
正确答案: A 你的答案: B
解析:访问器提供对否则无法访问的变量的读访问。变异器提供对其他不可访问变量的写访问。
结对及互评
评分标准
-
正确使用Markdown语法(加1分)
-
模板中的要素齐全(加1分)
-
教材学习中的问题和解决过程, 3个问题加3分
-
代码调试中的问题和解决过程, 2个问题加2分
-
本周有效代码超过300分行的(加2分)
-
感想,体会不假大空的加1分
-
排版精美的加一分
-
进度条中记录学习时间与改进情况的加1分
-
有动手写新代码的加1分
-
课后选择题有验证的加1分
-
错题学习深入的加1分
-
点评认真,能指出博客和代码中的问题的加1分
-
结对学习情况真实可信的加1分
点评模板:
-
博客中值得学习的或问题:
博客书写规范;
博客中的错题整理的规范 -
代码中值得学习的或问题:
代码增长量多,说明结对的同学这周很努力的在学习Java,我也要努力学习Java了 -
基于评分标准,我给本博客打分:15分。
点评过的同学博客和代码
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 168/168 | 2/2 | 22/22 | |
第二周 | 300/500 | 1/3 | 16/38 | |
第三周 | 500/1000 | 2/5 | 22/60 | |
第四周 | 605/1460 | 2/7 | ||
参考:软件工程软件的估计为什么这么难,软件工程 估计方法 |
-
计划学习时间:30小时
-
实际学习时间:35小时