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

    1. 本周学习总结

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

    2. 书面作业
    2.1. clone方法
    1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么?
    既然是被protected修饰的,那么覆盖clone方法的时候就要注意protected修饰的调用条件,即只能在同一个类内部或者Object包中使用。

    1.2 自己设计类时,一般对什么样的方法使用protected进行修饰?以作业Shape为例说明。
    在Shape里,有private double width; private double length; private double radius;使用了private进行修饰,而width、length和radius都为变量,又通过了public double getWidth()、public double getLength()、public double getRadius()来获取到它们,故此时应将她们改为是用protected进行修饰,为protected double width; protected double length; protected double radius;即可。
    通过举例,我们可得出这样的结论:是用protected进行修饰的成员是半公开的,外界无法直接访问这个的成员,但可以对当前类,同包类或者子孙类继承或使用,故此对被它修饰的成员变量起到了保护作用。

    1.3 在test1包中编写简单的Employee类,在test2包中新建一个TestProtected类,并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象,能否成功?为什么?
    不能成功。调用方法时发现不在同一个包内,若想实现调用,应先调用包。

    2.2. 使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类的题目5-2
    仅需粘贴关键代码与运行结果,图片不要太大。

    内部类:
    Comparator AgeComparator = new Comparator(){
    public int compare(PersonSortable2 o1, PersonSortable2 o2) {
    if (o1 == o2) return 0;
    return o1.getAge()-o2.getAge();
    }
    };
    Lambda表达式:
    PersonSortable2 o1;
    PersonSortable2 o2;
    Comparator NameComparator = (o1 , o2) --> o1.getName().compareTo(o2.getName());
    Comparator AgeComparator = (o1,o2) --> o1.getAge()-o2.getAge();

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

    Comparator shapeComparator = new Comparator() {
    @Override
    public int compare(Shape o1, Shape o2) {
    //你的代码
    }
    };
    shapeComparator所指向的对象对Comparator接口进行实际化,使用匿名内部类,然后重写compare方法。

    2.4. GUI中的事件处理
    4.1 写出事件处理模型中最重要的几个关键词。
    在java中的事件处理中,包括三部分:
    事件源—事件对象—事件监听器

    4.2 使用代码与注释,证明你理解了事件处理模型。
    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);
    }

    2.5. 结对编程:面向对象设计(大作业2-非常重要,未完成-2)
    继续完善上周的项目作业。考核点如下:
    5.1 尝试使用图形界面改写。
    5.2 给出两人在码云上同一项目的提交记录截图。
    5.3 与上周相比,项目的主要改动是什么?

  • 相关阅读:
    1094. Car Pooling
    121. Best Time to Buy and Sell Stock
    58. Length of Last Word
    510. Inorder Successor in BST II
    198. House Robber
    57. Insert Interval
    15. 3Sum java solutions
    79. Word Search java solutions
    80. Remove Duplicates from Sorted Array II java solutions
    34. Search for a Range java solutions
  • 原文地址:https://www.cnblogs.com/yytx/p/6659506.html
Copyright © 2011-2022 走看看