1. 本周学习总结

2. 书面作业

1.clone方法

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

1.子类要实现Cloneable接口,否则即使覆盖了clone()方法,还是会导致抛出CloneNotSupportedException异常

2.在子类中重写clone方法,并声明为public,其他类才能调用。

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

用protected修饰的方法只能被子类和同包访问,所以Shape中的getPerimeter与getArea方法只想继承的子类才有这种方法所以用protected修饰。

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

失败,因为clone方法用的是protected修饰的,而protected所修饰的只能在子类和同包中访问。

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

Comparator<PersonSortable2> NameComparator = new Comparator<PersonSortable2>(){
public int compare(PersonSortable2 o1, PersonSortable2 o2) {
if (!(o1.getAge() == o2.getAge())) {
if (o1.getAge() > o2.getAge())
return 1;
else
return -1;
}
return 0;
}
};
Comparator<PersonSortable2> AgeComparator = new Comparator<PersonSortable2>(){
public int compare(PersonSortable2 o1, PersonSortable2 o2) {
if (!o1.getName().equals(o2.getName())) {
if (o1.getName().compareTo(o2.getName()) > 0)
return 1;
else
return -1;
}
return 0;
}
};
Comparator<PersonSortable2> NameComparator = (PersonSortable2 o1, PersonSortable2 o2)->(o1.getName()).compareTo(o2.getName());
Comparator<PersonSortable2> AgeComparator = (PersonSortable2 o1, PersonSortable2 o2)->o1.getAge()-o2.getAge();

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

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

这是一个匿名内部类,实现了Comparator接口并且重写了compare方法。

4.GUI中的事件处理

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

1.事件源(Event Source)2.事件(Event)3.事件监听器(Event Listener)

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

public class MainGUI {
public static void main(String[] args) {
JFrame f = new JFrame("Test");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton b = new JButton("Press Me!");//事件源
b.addActionListener(new ButtonHandler());//注册监听器
f.add(b);
f.setSize(200, 100);
f.setVisible(true);
}
private static class ButtonHandler implements ActionListener{//监听器
public void actionPerformed(ActionEvent e) {
System.out.println("Action occurred");
System.out.println(e.getSource());//获得事件源
}
}
}

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

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

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

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

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

3.1. 码云代码提交记录

3.2. PTA实验总结

5-3主要是熟悉栈的操作,5-4需要静态内部类的熟悉以及使用。

最新文章

  1. HTTP连接管理
  2. WINDOWS遠程常規化後再次切換回到全屏
  3. java编程思想-java 异常使用指南
  4. 微信企业号公测开启OA红海模式
  5. 让树莓派说出自己的IP地址
  6. php编程常用经验
  7. 0302 关于IT行业的就业感想
  8. div+css+jQuery图片横向滚动代码(带左右点击按钮)
  9. openerp学习笔记 计算字段、关联字段(7.0中非计算字段、关联字段只读时无法修改保存的问题暂未解决)
  10. 使用 DllImport 属性
  11. 关于ios对rtsp格式的流媒体支持的一些官方说明
  12. TDD(测试驱动开发)
  13. Django ORM操作
  14. java 学习资源
  15. 【山东省选2008】郁闷的小J 平衡树Treap
  16. EntityFramework6之原生SQL
  17. shibie
  18. 全排列(dfs)
  19. c++ 容器元素填充(fill)
  20. allowMultiQueries=true允许插入多条语句

热门文章

  1. 如何两周达到150行Java程序的能力--part 1
  2. [STM32F429-DISCO-uCosiii]3.uCOSIII 移植
  3. Markdown简明教程
  4. android学习ViewPager的简单使用
  5. android学习笔记WebView的基本使用
  6. WAS应用--虚拟主机
  7. jQuery.extend 使用函数
  8. 如何在GitHub上生成ssh公钥并用NetBeans克隆项目
  9. mysql服务器主从数据库同步配置(转)
  10. 【HotSpot】jps命令行详解