# 20182335 2019-2020-1 《数据结构与面向对象程序设计》第5周学习总结
教材学习内容总结
子类与父类的关系。子类是父类的其中一种。派生操作在子类中加保留字extends实现。子类的实例化并不依赖于父类的实例化。
protected修饰符(为了让子类能够访问并且不违反封装性原则)。父类中的变量和方法被声明为protected可见性时,子类就可以使用。
继承时,子类不会继承父类的构造函数,在调用子类的构造函数时会自动调用父类的构造函数。(编译子类时会自动在子类构造函数上加“super()”)至于调用哪个构造函数,根据super后面括号里的函数决定。
父类中任一公用的方法或变量,都可以在子类中显示地通过子类的对象用名字来引用。而父类中私有的方法和变量不能在子类中引用,也不能通过子类的对象引用。
super引用既可以调用父类的构造方法
教材学习中的问题和解决过程
问题1:书中说super可以调用父类的构造方法,那为什么不允许直接继承父类的构造方法?感觉这里的说法自相矛盾
问题1解决方案:百度了一下,在一个论坛里看到了想要的答案:继承并不单继承构造方法,可能继承父类里的变量,必然会造成某些隐患。而且类的名称与构造方法相同。如果子类直接继承父类构造方法那么一个构造方法有两个类名是显然不行的。(如果想法不对请老师指出)引用源:java中子类不能直接继承构造方法的原因
代码调试中的问题和解决过程
问题2:在p128的This引用事例中:public Account (String name, long acctNumber, double balance)
{
this.name = name;
this.accNumber = acctNumber;
this,balancd = balance;
中,哪一个“name”是输入的name?
问题2的解决过程:猜想等号后面的name是输入的name,然后进行试验编码,证实了我的猜想
代码托管
上周考试错题总结
1.Aside from permitting inheritance, the visibility modifier protected is also used to
A . permit access to the protected item by any class defined in the same package
B . permit access to the protected item by any static class
C . permit access to the protected item by any parent class
D . ensure that the class can not throw a NullPointerException
E . define abstract elements of an interface
答案:A。被保护的可见性修饰符被用来以受保护(保护)的方式控制对该项的访问。保护措施是访问仅限于当前类(如私有项目)、同一包中的类或此类的扩展类。
2.Which of the following is true regarding Java classes?
A . All classes must have 1 parent but may have any number of children (derived or extended) classes
B . All classes must have 1 child (derived or extended) class but may have any number of parent classes
C . All classes must have 1 parent class and may have a single child (derived or extended) class
D . All classes can have any number (0 or more) of parent classes and any number of children (derived or extended) classes
E . All classes can have either 0 or 1 parent class and any number of children (derived or extended) classes
答案:A。Java支持继承,但不支持多重继承,因此Java类可以有任意数量的子类,但只能有一个父类。此外,由于所有Java类都直接或间接从对象类继承,所以所有Java类都只有一个父类。
结对及互评
评分标准
-
正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
-
模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
-
教材学习中的问题和解决过程, 一个问题加1分
-
代码调试中的问题和解决过程, 一个问题加1分
-
本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
-
其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习情况真实可信的加1分
-
扣分:
- 有抄袭的扣至0分
- 代码作弊的扣至0分
- 迟交作业的扣至0分
点评过的同学博客和代码
本周结对学习情况 20182311
其他(感悟、思考等,可选)
上课时有时候会很困,上课的状态并不好,所以课下需要更加花费时间去学习,同时继续向会的同学请教学习。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 325/500 | 2/4 | 18/38 | |
第五周 | 600/1000 | 3/7 | 22/60 |