zoukankan      html  css  js  c++  java
  • 201521123040 《Java程序设计》第6周学习总结

    1.本章学习总结

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

    2. 书面作业

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

    (1)protected修饰的方法只允许其子类调用,而外部类则是不允许调用该方法的。

    (2)利用Object类的clone方法,自定义类中的方法的名称要与Object.clone中的名称相同。

    (3)其返回值必须和被覆盖的方法的返回值一致

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

    只想限制其朋友类和子类访问时,而不允许其他外部类访问时,可采用protected修饰,这样还可以保护它,不让它被其他类调用。

    阅读作业Shape代码,可以看出getPerimeter和getArea两个方法分别计算周长与面积,是其和其子女的特性,应该为其和继承其的子女类使用且不为其他类所调用,故用protected修饰。

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

    不能成功。首先两个类不在一个包中,test2也并没有import test1包,故无法获取该类,其次TestProtected类应继承Employee类才可调用其方法。

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

    public static void main(String[] args) { 
    //将内部类改写为内部匿名类
      Comparator<PersonSortable2> NameComparator=(PersonSortable2 o1, PersonSortable2 o2)->{
        if(o1.getName().compareTo(o2.getName())>0){
        return 1;
      }else if(o1.getName().compareTo(o2.getName())<0){
        return -1;
      }  else {
        return 0;
      };
      Arrays.sort(person,NameComparator);
    }
    

      

      

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

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

      

    shapeComparator所指向的对象实现了Compatator接口,并在其匿名内部类中将compare方法实现(实际过程为重写),使该抽象方法可以通过Collection.sort进行调用。

    4.GUI中的事件处理

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

    事件,事件源,事件监听器。

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

        public static void main(String[] args) {  
              btn = new JButton("this is a btn");//创建一个按钮用以监听事件
              //实现监听器接口并编写监听器绑定事件
              btn.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    System.out.println("hello world"); 
                }
            });
        }      
    

      

    实验总结

    1.内部类使用的时候,需要先创建外部类才能实现。
    2.内部类可以是静态static的,也可用public,default,protected和private修饰。
    3.内部类的方法名可以和外部类的相同。

    码云上代码提交记录及PTA

     

  • 相关阅读:
    修而未复:说说WebLogic那修不完的Java反序列化漏洞
    python 元字符
    Metasploit利用MS17-010漏洞
    使用PDF.JS在线查看PDF
    当SQL Server爱上Linux:AVAILABILITY_MODE 和 DataGuard 的实践差距
    __call__()方法
    绑定方法和非绑定方法对象
    前世今生:蚂蚁金服自研数据库OceanBase的道路与思考
    centos分配IP脚本--写的第一个shell脚本
    centos分配IP脚本--写的第一个shell脚本
  • 原文地址:https://www.cnblogs.com/hyrrr/p/6657589.html
Copyright © 2011-2022 走看看