• 201521123067 《Java程序设计》第6周学习总结


    1. 本周学习总结


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




    2. 书面作业


    Q1:clone方法

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

    答:protected是将该方法定义为受保护的,顾名思义,也就是说不能被轻易访问,所以在自定义的类中覆盖clone方法时需要将克隆操作设为public,否则将无法访问。
    

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

    答:一般对以下两种情况的方法使用protected进行修饰
    ①当需要在相同的包中可以直接存取某方法的时候使用protected进行修饰该方法。
    ②当需要在不同包中的类可以在继承后的子类直接存取时使用protected进行修饰该方法。
    在作业中,Circle、Rectangle都继承Shape类,所以有getPerimeter和getArea方法,若想让其隐秘一点,就使用protected修饰。
    

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

    答:不能成功,因为clone方法被protected修饰在不同包中的类只能在继承后的子类中直接存取。
    

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

    改写后的关键代码如下:

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

    运行结果如图:

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

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

    答:shapeComparator所指向的对象是shape类型的,创建了一个Comparator接口。
    

    Q4:GUI中的事件处理

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

    答:关键词:事件源(组件),事件类,监听器。它们之间的关系如下图:
    

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

    代码如下:
    import java.awt.event.ActionEvent; 
    import java.awt.event.ActionListener; 
    import javax.swing.JButton; 
    import javax.swing.JFrame; 
     
    public class Event extends JFrame implements ActionListener { 
        private JButton jb; 
     
        public Event() { 
            jb = new JButton("确定"); 
            jb.addActionListener(this); 
            this.add(jb); 
            this.setSize(300, 200); 
            this.setDefaultCloseOperation(3); 
            this.setVisible(true); 
     
        } 
     
        public void actionPerformed(ActionEvent e) { 
            this.jb.setText("事件已响应"); 
        } 
     
        public static void main(String[] args) { 
            new Event(); 
        } 
    }
    

    Q5:结对编程:面向对象设计(大作业2-非常重要,未完成-2)继续完善上周的项目作业。




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


    3.1. 码云代码提交记录

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

    3.2. PTA实验总结

    ●在做第5-3题时,主要难度在于public Integer push(Integer item);public Integer pop(); public Integer peek(); public boolean empty(); public int size()这几个方法的构造。虽然去年学习过数据结构,对栈有基本的了解,但是刚开始时对栈的使用还不够熟练,很多知识点忘了,所以编程一直受阻,后来不停地翻书和百度搜索,终于把这道题解决了。

    ●5-4这题的难度不大,在老师上课的讲解后,一下子就打出来了,也运行成功了,不过复制到PTA上的时候一直显示编译错误。

  • 相关阅读:
    {C#}{GDI+}各种C#,GDI+的资料
    {Reship}{C#}{GDI+}GDI+画笔,线,区域类型
    {VS2010C#}{WinForm}{ActiveX}VS2010C#开发基于WinForm的ActiveX控件
    {matlab}取二值图像centroid几种方法性能比较
    {vlFeat}{Matlab}Linux中matlab的vlFeat配置
    {Links}{Matting}{Saliency Detection}{Superpixel}Source links
    {Reship}{Matting}Image Matting
    javascript中的装箱和拆箱操作
    javascript中的垃圾回收
    javascript中的类方法、构造方法、原型方法的对比
  • 原文地址:https://www.cnblogs.com/yjliao/p/6636968.html
Copyright © 2020-2023  润新知