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

1. 本周学习总结

1.1 向对象思想总结

1.2 使用常规方法总结其他上课内容

  • Swing一些常用组件的基本用法
  • Object类的clone及hashcode方法

    2. 书面作业

1. clone方法

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

注意参数类型也要完全一样不然会变成重载

然后重写该方法的时候如果是想要实现深拷贝 要对每一个属性都要实现深拷贝才行

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

仅想让该类的子类同包内的类访问该类的属性的时候可以用protected修饰。

Shape类

包内子类

包外子类

包内类

包外类

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

继承的clone方法是protected的,所以包外不可见,所以不能用。

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

匿名内部类:

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

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

shapeComparator所指向的对象是实现了Comparator接口并将Shape类型参数化传入泛型化的Comparator<>接口的对象。

4. GUI中的事件处理

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

  • 事件源
  • 事件监听器
  • 事件业务处理

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

点击按钮后出现文本

5. 结对编程:面向对象设计(大作业2-非常重要,未完成-2)

5.1 尝试使用图形界面改写。

初始界面:

按价格排序:

条件查找:

对查找内容排序:

按照销量:

多用户独立购物车以及密码暴力试错保护限于时间没有做显性演示

5.2 给出两人在码云上同一项目的提交记录截图。

5.3 与上周相比,项目的主要改动是什么?

将用户交互部分做了改变

e.g.

(System.in)->actionListener

(sysout)->setText

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

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

4. 实验总结

5-3

pop方法不需要将top位置原来的值清空,只需要将“top指针”下移

5-4

在类里通过方法返回对一个内部类的引用是一种很优雅的方式