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

    1. 本章学习总结

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

    1.2 可选:使用常规方法总结其他上课内容。

    ① 学会使用Netbeans设计图形界面,并其进行编程,使程序可达我们所需的功能。
    ② 熟悉嵌套类、内部类、匿名内部类的使用,尤其是匿名内部类,它在图形界面设计中十分常用。有关匿名内部类,见第5周学习总结的1.2总结。
    发现一篇好的博文:Java 内部类种类及使用解析

    2. 书面作业

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

    答:① 应确保自定义的类继承Object类,因为被protected关键字修饰的方法,只能被其同包的类或是子类所继承。
    ② 在自定义类中的clone方法必须和Object中的clone方法保持相同的名称、相同的参数、相同的返回类型。

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

    答:① protected修饰的方法或属性,除同包的类或是其子孙类以外不可被访问。
    ② 以作业Shape为例,Circle类和Rectangle类为Shape类的子类,这两个类中都包含getPerimeter()与getArea()方法,所以在Shape类中,将Perimeter()与getArea()方法使用protected进行修饰。

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

    答:① 不能成功。
    ② 理由:test1包中的Employee类 ↓↓↓

    test2包中的TestProtected类,会报错 ↓↓↓

    若将test2包中的TestProtected类加上throws CloneNotSupportedException,即可编译成功 ↓↓↓

    • Q2:使用匿名类与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) {
    			return o1.getAge() - o2.getAge();
    		}
    	};
    

    ② 使用Lambda表达式改写 ↓↓↓

    	Comparator<PersonSortable> NameComparator = (o1, o2) -> o1.getName().compareTo(o2.getName());            // 按姓名排序
    	
    	Comparator<PersonSortable> AgeComparator = (o1, o2) -> o1.getAge() - o2.getAge();                        // 按年龄排序
    

    ③ 运行结果均为 ↓↓↓

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

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

    答:shapeComparator所指向的对象实现了Comparator接口,以下为JDK中对Comparator接口的方法摘要!

    所以当shapeComparator所指向的对象可以调用Comparator接口的compare方法和equals方法。

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

    答:事件(Event):用户在GUI组件上进行的操作,如鼠标单击、输入文字、关闭窗口等。
    事件源(Event Source):能够产生事件的GUI组件对象,如按钮、文本框等。
    事件监听器(Event Listener):事件源触发一个事件,但是事件源本身并不处理该事件,而是委托给事件监听器来处理。
    参考:Java GUI 事件处理机制总结

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

    答:以本周博客作业Q5为例

    输入账户密码后,点击“Login”即可弹出“Menu”,如图 ↓↓↓

    其关键代码如下 ↓↓↓

        if (username.equals("jmu2015064") && java.util.Arrays.equals(pass, password)){
                new Menu().setVisible(true);   //弹出Menu窗口
        }
    

    答:① 码云提交记录:

    ② 购物流程:
    先进入登录页面

    输入账户密码后,点击“Login”即可弹出“Menu”

    点击“搜索商品”后进入搜索页面

    (搜索商品后添加商品那里没写好,还在修改中。。)
    点击“购物车”后进入购物车页面

    《大学英语》和《算法导论》一共170.9元!
    ③ 与上周相比,项目主要加入了一个登录界面。需要注意的是,Username是字符串类型,Password是字符数组类型。
    ④ 我和小伙伴的博客链接,如下 ↓↓↓

    郭炜埕 姚佳希 项目地址
    郭炜埕的博客链接 姚佳希的博客链接 ShoppingCart码云地址

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

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

    3.1. 码云代码提交记录

    3.2. PTA实验

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

    • 5-3:得分点有两个,输出格式和判断空栈满栈。要注意的是栈中的push、pop及empty方法需要考虑空栈满栈的情况,可定义top变量指向栈顶。
    • 5-4:较5-3来说更为简单,需要注意寻找最大最小值的方法的返回值。
  • 相关阅读:
    2020-08-25日报博客
    2020-08-24日报博客
    2020-08-23日报博客
    Pytorch-区分nn.BCELoss()、nn.BCEWithLogitsLoss()和nn.CrossEntropyLoss() 的用法
    Pytorch-基于BiLSTM+CRF实现中文分词
    Pytorch-手动实现Bert的训练过程(简写版)
    Pytorch-图像分类和CNN模型的迁移学习
    Pytorch trick集锦
    Pytorch-seq2seq机器翻译模型(不含attention和含attention两个版本)
    Pytorch-GAN
  • 原文地址:https://www.cnblogs.com/vicheng/p/6652066.html
Copyright © 2011-2022 走看看