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

    1. 本周学习总结

    1.1 面向对象学习暂告一段落,请使用思维导图,以封装、继承、多态为核心概念画一张思维导图,对面向对象思想进行一个总结。
    注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖面向对象的核心内容即可。
    注2:颜色要少、连线不要复杂,必要的时候要在连线上进行说明。

    2. 书面作业

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

    答:在自定义的类中覆盖clone方法时需要声明为public,否则其他类无法调用,因为protected修饰的方法是能被本类、继承类或同一个包里面调用。
    

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

    答:设计类的时候允许本类、同包下或是子类可以调用的方法或属性是使用protected修饰。以作业Shape为例,Shape为父类,父类中的计算面积getArea和计算周长getPerimete两个方法是每个子类都要调用的,因此这两个方法可以用protected修饰。
    
    

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

    答:不会成功,出现两个错误。1.提示Employee cannot be resolved to a type,意思为无法解析这个类型,原因是employee类在另一个包中,在本包调用需要import test1.Employee;。2.提示the method clone()from the type Employee is not visible,出现这个错误的原因是因为clone这个方法是用protected修饰的,protected修饰的方法只允许在同一个包中或本类和继承的子类中调用,要使clone能被调用应该把clone方法用public修饰。
    

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

    使用匿名类与Lambda表达式改写,并使用Arrays.sort
    ``` Comparator NameComparator=(o1,o2)->o1.getname().compareTo(o2.getname()); Comparator AgeComparator=(o1,o2)->o1.getage()-o2.getage(); Arrays.sort(per, NameComparator); Arrays.sort(per, AgeComparator); ```
    运行结果
    ![](http://images2015.cnblogs.com/blog/1109692/201704/1109692-20170401193241102-1424574047.png)

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

    Comparator<Shape> shapeComparator = new  Comparator<Shape>() {  
         @Override  
         public int compare(Shape o1, Shape o2) {  
             //你的代码     
          }         
    }; 
    
    答:这里使用了匿名内部类,shapeComparator类实现了Comparator接口。
    

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

    答:事件、事件源、事件监听器(ActionEvent、ActionListener)
    
    

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

    \\
    public class MainGUI {
    	public static void main(String[] args) {
    		JFrame f = new JFrame("Test");//新建一个JFrame容器
    		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());//获得事件源
    		}
    	}
      private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            // TODO add your handling code here:
           String x= a.getText();//获得文本框信息
           String y= b.getText();
         new Menu().setVisible(true);//新建另一个页面
        }       
        }                       
    
    

    结对编程:面向对象设计(大作业2-非常重要,未完成-2)
    继续完善上周的项目作业。考核点如下:
    5.1 尝试使用图形界面改写。



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

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

    答:该项目由晓娴和凯欣共同完成,之前项目的输入只能在控制台输入,本周学习GUI之后把项目中的输入格式改成利用图形界面来输入,但具体功能的实现还未完善。
    
    

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

    3.1. 码云代码提交记录

    在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

    3.2. PTA实验

    函数(选做:4-1)、编程(5-3, 5-4)
    一定要有实验总结

    答:5-3 提交到PTA显示部分正确,原因是忽略了输入的值的数目大于栈的长度的情况。
        5-4 这题比较简单,主要就是考察静态内部类,注意静态方法只能调用静态属性,非静态不能调用,创建内部类之前要先创建外部类。
    
  • 相关阅读:
    C语言的异常处理
    单例类模板
    智能指针模板
    数组类指针
    类模板
    函数模板
    shell 修改工作路径
    把目录C:Python34PCI_Codechapter2加到系统路径中
    twoSum
    归并排序
  • 原文地址:https://www.cnblogs.com/carol520123/p/6657149.html
Copyright © 2011-2022 走看看