1. 本周学习总结

2. 书面作业

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

克隆方法用于创建对象的拷贝,为了使用clone方法,类必须实现java.lang.Cloneable接口重写protected方法clone,如果没有实现Clonebale接口会抛出CloneNotSupportedException.

在克隆java对象的时候不会调用构造器。

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

Shape类中,有Circle、Rectangle这两个子类,Circle、Rectangle都继承Shape,让他们都有getPerimeter()与getArea()来计算面积与周长的方法,所以可以用protected修饰。

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

不能,两个类是不同一个包内的。

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

//匿名类
Comparator<PersonSortable2> NameComparator=new Comparator<PersonSortable2>(){
public int compare(PersonSortable2 o1, PersonSortable2 o2) {
// TODO Auto-generated method stub
return o1.getName().compareTo(o2.getName());
} }
Comparator<PersonSortable2> AgeComparator= new Comparator<PersonSortable2>(){
public int compare(PersonSortable2 o1, PersonSortable2 o2) {
// TODO Auto-generated method stub
return p1.getAge()-p2.getAge(); }

//Lambda表达式
Comparator<PersonSortable2> NameComparator=(o1,o2)-> o1.getName().compareTo(o2.getName());
Comparator<PersonSortable2> AgeComparator=(o1,o2)-> o1.getAge()-o2.getAge();

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

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

实现了Comparator接口。

4.GUI中的事件处理

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

事件源,事件对象,监听器

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

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.JButton;
import javax.swing.JFrame; 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());//获得事件源
}
}
}

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

继续完善上周的项目作业。考核点如下:

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



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

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

增加了编写图形界面的类。

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

3.1. 码云代码提交记录



3.2. PTA实验总结

5.3:回顾栈的知识,能够与接口的知识一起灵活的运用。

5.4:查看书中与网上关于匿名内部类的知识。

最新文章

  1. XML文件(1)--使用DOM示例
  2. 矩阵快速幂 HDU 4565 So Easy!(简单?才怪!)
  3. winrar命令行加压解密
  4. Flex开发一周年感悟
  5. 【背景建模】PBAS
  6. 让Js顺序执行且回调之
  7. [转]Mac OS X 下部分Android手机无法连接adb问题之解决方案
  8. android学习日记17--Gallery(画廊视图)
  9. 冒泡排序和快速排序的java实现
  10. Java基础知识强化之集合框架笔记10:Collection集合使用的步骤
  11. Linux进程笔记
  12. JqueryeasyUI选项卡选择判定更改内部Iframe地址
  13. Makefile学习(一)[第二版]
  14. CSS设计指南之理解盒子模型
  15. jQuery的入门操作
  16. MD5 .net与PHP加密值一样的加密代码
  17. 继续死磕SDRAM控制器
  18. SQLServer之创建分区视图
  19. frameset基础了解
  20. php过滤字段htmlentities,htmlspecialchars,strip_tags

热门文章

  1. 菜鸟帮你跳过openstack配置过程中的坑
  2. AWK求和、平均值、最值
  3. VC++动态链接库(DLL)编程深入浅出
  4. Redis和消息队列使用实战
  5. Linux学习总结(十一)—— Linux常用命令:版本信息查看(RedHat、CentOS、Debian、Ubuntu、Fedora、Oracle)
  6. Struts2之初识
  7. Maven学习 使用Nexus搭建Maven私服(转)
  8. MyEclipse 2014各种优化设置
  9. Java中&quot;==&quot; 和 equals 的区别
  10. vue.js基础知识篇(5):过渡、Method和Vue实例方法