1. 本周学习总结
2. 书面作业
1.clone方法
1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么?
覆盖clone的方法,声明为public。实现Cloneable。object.clone方法返回一个值,必须用强制类型转换。
1.2 自己设计类时,一般对什么样的方法使用protected进行修饰?以作业Shape为例说明。
对于只想同包的或子类访问,用protected,因为Circle、Rectangle都继承自父类shape,所以需要子类需要访问主类。
1.3 在test1包中编写简单的Employee类,在test2包中新建一个TestProtected类,并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象,能否成功?为什么?
不可以,会出现clone()方法不可见的错误。protected对于包外的类也是不可见的。所以一般我们写clone()方法,一般都用public来修饰。
2.使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类的题目5-2。仅需粘贴关键代码与运行结果,图片不要太大。
关键代码
调用
Collections.sort(person,NameComparator);
Collections.sort(person,AgeComparator);
3.分析下列代码,回答shapeComparator所指向的对象与Comparator接口有什么关系?
shapeComparator实现Comparator接口,使用匿名内部类并对compare进行重写。
4.GUI中的事件处理
4.1 写出事件处理模型中最重要的几个关键词。
事件源
事件对象
事件监听器
4.2 使用代码与注释,证明你理解了事件处理模型。
使用implements来实现接口public class EventMainGUI2 extends Frame implements ActionListener
public interface ActionListener extends EventListener {
/**
* Invoked when an action occurs.
*/
public void actionPerformed(ActionEvent e);
}
3. 码云上代码提交记录及PTA实验总结
题目集:jmu-Java-04-面向对象2-进阶-多态接口内部类
3.1. 码云代码提交记录
3.2实验总结
主要就是静态内部类的使用以及自定义接口使用