201521123028 《Java程序设计》第6周学习总结

时间:2023-03-09 03:29:31
201521123028 《Java程序设计》第6周学习总结

1. 本周学习总结

1.1 面向对象学习暂告一段落,请使用思维导图,以封装、继承、多态为核心概念画一张思维导图,对面向对象思想进行一个总结。

201521123028 《Java程序设计》第6周学习总结

2. 书面作业

Q1.clone方法

1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么?

Ans:

既然是被protected修饰的,那么覆盖clone方法的时候就要注意protected修饰的调用条件,即只能在同一个类内部或者Object包中使用。

1.2 自己设计类时,一般对什么样的方法使用protected进行修饰?以作业Shape为例说明。

Ans:

在码云上找了以前作业Shape的代码(图中只截取了子类Circle和Rectangle,Main方法没有截下来)

201521123028 《Java程序设计》第6周学习总结

代码中,Circle类和Rectangle类都是继承于Shape类的,因此可以使用protected进行修饰。

1.3 在test1包中编写简单的Employee类,在test2包中新建一个TestProtected类,并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象,能否成功?为什么?

Ans:

Employee类和TestProtected类不在同一个包内,而protected修饰的clone方法只能针对在同一包中的对象,此处对象就是Employee类和TestProtected类。

Q2.使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类的题目5-2

仅需粘贴关键代码与运行结果,图片不要太大。

Ans:如图:

201521123028 《Java程序设计》第6周学习总结

5
zhang 15
zhang 12
wang 14
Wang 17
li 17
NameComparator:sort
Wang-17
li-17
wang-14
zhang-15
zhang-12
AgeComparator:sort
zhang-12
wang-14
zhang-15
Wang-17
li-17
[interface java.util.Comparator]
[interface java.util.Comparator]

Q3:分析下列代码,回答shapeComparator所指向的对象与Comparator接口有什么关系?

Comparator<Shape> shapeComparator = new  Comparator<Shape>() {
@Override
public int compare(Shape o1, Shape o2) {
//你的代码
}
};

Ans:

ShapeComparator实现了对象的Comarator接口,用于对对象进行排序(利用Array.sort)。

Q4.GUI中的事件处理

4.1 写出事件处理模型中最重要的几个关键词。

Ans:

事件对象、事件源、事件监听器。

4.2 使用代码与注释,证明你理解了事件处理模型。

Ans:

  1. 码云上代码提交记录及PTA实验总结

题目集:jmu-Java-04-面向对象2-进阶-多态接口内部类

3.1. 码云代码提交记录

201521123028 《Java程序设计》第6周学习总结

3.2. PTA实验

5-3:

这一题主要是重写ArrayIntegerStack,使其实现栈的基本功能,比较重要的几个方法如下:

Integer push(Integer item) // 如果item为null,则不入栈直接返回null。如果栈满,也返回null。如果插入成功,返回item。

public Integer pop() // 出栈,如果为空,则返回null。出栈时只移动栈顶指针,相应位置不置为null

public Integer peek() // 获得栈顶元素,如果为空,则返回null

public boolean empty()// 如果为空返回true

public int size() // 返回栈中元素个数