201521123119《Java程序设计》第6周学习总结
1. 本周学习总结
2. 书面作业
Q1.clone方法
Q1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么?
只能在本类内部或者和Object同包的地方使用,而不能在其他类使用。
Q1.2 自己设计类时,一般对什么样的方法使用protected进行修饰?以作业Shape为例说明。
protected修饰的变量或方法只能被当前类,同包类或者子孙类继承或使用。在作业Shape类,有Circle、Rectangle这两个子类,因为Circle、Rectangle都继承Shape类型,所以其会拥有getPerimeter()与getArea()两种方法,所以可以用protected修饰。
Q1.3 在test1包中编写简单的Employee类,在test2包中新建一个TestProtected类,并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象,能否成功?为什么?
不能成功。
Q2.使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类的题目5-2仅需粘贴关键代码与运行结果,图片不要太大。
匿名类:
结果:
Q3.分析下列代码,回答shapeComparator所指向的对象与Comparator接口有什么关系?
Comparator
@Override
public int compare(Shape o1, Shape o2) {
//你的代码
}
};
其实就是用匿名内部类把compare进行重写,新建了一个比较器,那么这个shapeComparator类肯定是实现了Comparator接口的,并且可以通过Collection.sort进行调用。
Q4.GUI中的事件处理
Q4.1 写出事件处理模型中最重要的几个关键词。
事件源、事件对象、事件监听器
Q4.2 使用代码与注释,证明你理解了事件处理模型。
...
Q5.结对编程:面向对象设计
3. PTA实验总结
编写栈用ArrayList比用数组更容易,因为栈有先进后出的特点,而ArrayList中的添加删除等都有直接的代码可以应用于头尾位置,用数组编写需要定义栈顶指针,并且在操作中要处理指针的移动情况。在编写的过程中也要考虑入栈出栈为null的情况。