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来说更为简单,需要注意寻找最大最小值的方法的返回值。
  • 相关阅读:
    使用MobaXterm远程连接Ubuntu,启动Octave,界面不能正常显示
    ABP .Net Core 日志组件集成使用NLog
    ABP .Net Core Entity Framework迁移使用MySql数据库
    ABP前端使用阿里云angular2 UI框架NG-ZORRO分享
    阿里云 Angular 2 UI框架 NG-ZORRO介绍
    Visual Studio 2019 Window Form 本地打包发布猫腻
    VS Code + NWJS(Node-Webkit)0.14.7 + SQLite3 + Angular6 构建跨平台桌面应用
    ABP .Net Core 调用异步方法抛异常A second operation started on this context before a previous asynchronous operation completed
    ABP .Net Core To Json序列化配置
    .Net EF Core数据库使用SQL server 2008 R2分页报错How to avoid the “Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement.”
  • 原文地址:https://www.cnblogs.com/vicheng/p/6652066.html
Copyright © 2011-2022 走看看