• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
往事不见它
博客园    首页    新随笔    联系   管理    订阅  订阅

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

1. 本周学习总结

2. 书面作业

1.clone方法

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

答:(1)x.clone() != x; 克隆对象与原对象不是同一个对象
(2)x.clone().getClass() == x.getClass(); 克隆的是同一类型的对象
(3)x.clone().equals(x) == true,如果x.equals()方法定义恰当的话

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

答:当想让同一个包中的类或者子类访问时使用protected进行修饰,etPerimeter与getArea分别为计算面积与周长的方法,只有继承了Shape的子类才具有这两种方法。

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

答:不能成功,因为不在同一个包里,也不是继承关系。

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

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

Comparator<PersonSortable2> NameComparator=(n1,n2)-> n1.getName().compareTo(n2.getName());
Comparator<PersonSortable2> AgeComparator=(n1,n2)-> n1.getAge()-n2.getAge();

调用

Collections.sort(person,NameComparator);
    Collections.sort(person,AgeComparator);

输入:

输出:

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

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

答:用匿名内部类把compare进行重写,shapeComparator类实现了Comparator接口,并且可以通过Collection.sort进行调用。

4.GUI中的事件处理

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

答:事件源、事件对象、事件监听器

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

简单的示例:处理一个按钮的单击事件

public class AwtTest {  
  
    Frame f = new Frame("Event Test");  
    TextField tf = new TextField(30);  
    Button ok = new Button("OK");  
      
    class OkListener implements ActionListener {  
  
        @Override  
        public void actionPerformed(ActionEvent e) {  
            // TODO Auto-generated method stub  
            System.out.println("OK button pushed!");  
            tf.setText("Hello!");  
        }  
          
    }  
      
    public void init() {  
        f.add(tf);  
        f.add(ok, BorderLayout.SOUTH);  
          
        ok.addActionListener(new OkListener());  
          
        f.pack();  
        f.setVisible(true);  
    }  
      
    public static void main(String[] args) {  
          
        new AwtTest().init();  
    }  
  
}  

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

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

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

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

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

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

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

3.1. 码云代码提交记录

3.2. PTA实验总结

本次实验主要在于匿名内部类的使用,在对于方法或者是结合Lambda进行重写方法有了更好的理解,接口较继承也更加的灵活,所以更需要有面向接口的思想。

posted @ 2017-04-02 20:12  往事不见它  阅读(152)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3