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

    1. 本周学习总结

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

    2. 书面作业

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

    答:protected修饰的clone方法只能在同一个包内才能访问,如果需要在其他包使用clone方法,可以使用public修饰clone方法。

    1.2 自己设计类时,一般对什么样的方法使用protected进行修饰?以作业Shape为例说明。
    答:父类中的方法,子类可以调用,但不希望其他外部类调用时,使用protected进行修饰;例如Shape中的PI值,只有子类能访问使用,但其他类不行。

    1.3 在test1包中编写简单的Employee类,在test2包中新建一个TestProtected类,并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象,能否成功?为什么?
    答:不能成功,因为protected修饰的方法在其他包不可被使用,可以使用public修饰来改进。

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

    答:匿名类

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

    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) {  
             //你的代码     
          }         
    }; 
    

    答:shapeComparator所指向的对象实现Comparable接口,然后通过使用Arrays.sort进行排序。

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

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

    4.2 使用代码与注释,证明你理解了事件处理模型。
    答:以PTT中的代码为例:

    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());//获得事件源
    		}
    	}
    }
    

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

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

    3.1. 码云代码提交记录

    3.2. PTA实验总结
    答:1.用代码实现栈并不是很顺畅,在返回栈中元素个数时写成了返回数组的长度;
    2.学会了在类中创建静态类。

  • 相关阅读:
    Codeforces 834D The Bakery
    hdu 1394 Minimum Inversion Number
    Codeforces 837E Vasya's Function
    Codeforces 837D Round Subset
    Codeforces 825E Minimal Labels
    Codeforces 437D The Child and Zoo
    Codeforces 822D My pretty girl Noora
    Codeforces 799D Field expansion
    Codeforces 438D The Child and Sequence
    Codeforces Round #427 (Div. 2) Problem D Palindromic characteristics (Codeforces 835D)
  • 原文地址:https://www.cnblogs.com/zq1996/p/6659539.html
Copyright © 2011-2022 走看看