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

    1. 本周学习总结

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

    注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖面向对象的核心内容即可。
    注2:颜色要少、连线不要复杂,必要的时候要在连线上进行说明。

    2. 书面作业

    1.clone方法

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

    • 由于clone方法被protected修饰,所以只允许本包和子类访问,,所以在覆盖时将其修饰为public即可。

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

    • 根据protected修饰符的概念,很显然,那些需要被子类使用的方法需要用protected修饰。
    • Circle、Rectangle都继承Shape类,所以有getPerimeter和getArea方法,所以他们都可以用protected修饰。

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

    • clone被protected修饰,而又不在同一个包中调用,所以很显然不能成功。

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

    仅需粘贴关键代码与运行结果,图片不要太大。
    匿名内部类

    Comparator<PersonSortable> nameComparator = 
            new Comparator<PersonSortable>(){
                @Override
                public int compare(PersonSortable o1, PersonSortable o2) {
                    return o1.getName().compareTo(o2.getName());
                }
        
    };
    
    Comparator<PersonSortable> ageComparator = 
            new Comparator<PersonSortable>(){
                @Override
                public int compare(PersonSortable o1, PersonSortable o2) {
                    if (o1.getAge() < o2.getAge()) {
                        return -1;
                    } else if (o1.getAge() > o2.getAge()) {
                        return 1;
                    } else {
                        return 0;
                    }
                }
        
    };
    

    Lambda表达式

    Comparator<PersonSortable> NameComparator=(o1,o2)-> o1.getName().compareTo(o2.getName());
    Comparator<PersonSortable> AgeComparator=(o1,o2)-> o1.getAge()-o2.getAge(); 
    

    运行结果:

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

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

    • shapeComparator所指向的对象实现了Comparator接口,使用匿名内部类重写接口方法。

    4.GUI中的事件处理

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

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

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

    看的PPT里有一段代码:

    import java.awt.event.*;
    import javax.swing.*;
    public class Tester {
    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);
    }
    

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

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

    3.1. 码云代码提交记录

    3.2. PTA实验

    这次实验主要是关于接口和静态内部类的,5-3主要是对ArrayIntegerStack的重写,其中用栈这块个人比较难理解,又去翻了会数据结构的书,才勉强明白一点。

  • 相关阅读:
    Python
    Python
    Python
    Python
    Python
    Python
    Python
    python
    对象
    py常用模块
  • 原文地址:https://www.cnblogs.com/xjn12138/p/6659238.html
Copyright © 2011-2022 走看看