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来说更为简单,需要注意寻找最大最小值的方法的返回值。

201521123064 《Java程序设计》第6周学习总结的更多相关文章

  1. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  2. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  3. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  4. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  6. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  9. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  10. 《Java程序设计》第二周学习总结

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. Windows常用功能

    删除文件或目录CMD命令: rd/s/q 盘符:\某个文件夹  (强制删除文件文件夹和文件夹内所有文件)del/f/s/q 盘符:\文件名  (强制删除文件,文件名必须加文件后缀名)

  2. Oracle 高水位线和全表扫描

    --Oracle 高水位线和全表扫描--------------------------2013/11/22 高水位线好比水库中储水的水位线,用于描述数据库中段的扩展方式.高水位线对全表扫描方式有着至 ...

  3. oracle-使用数据泵对不同用户和不同表空间的数据迁移

    oracle-使用数据泵对不同用户和不同表空间的数据迁移 ---------------------------------------------------2013/11/13 expdp和imp ...

  4. Android App 压力测试 monkeyrunner

    Android App 压力测试 第一部分 背景 1. 为什么要开展压力测试? 2. 什么时候开展压力测试?第二部分 理论 1. 手工测试场景 2. 自动测试创建 3. Monkey工具 4. ADB ...

  5. Httpd Nginx Haproxy反向代理

    Apache反向代理 部署httpd反向代理 准备工作: 三台虚拟机Ip地址分配: linux-node1:192.168.1.5 (源码编译httpd,并且配置proxy用于代理后端的httpd服务 ...

  6. Sql Server数据库使用触发器和sqlbulkcopy大批量数据插入更新

    需要了解的知识 1.触发器 2.sqlbulkcopy 我的用途 开发数据库同步的工具,需要大批量数据插入和数据更新. 方式 使用SqlBulkCopy类对数据进行数据批量复制,将需要同步数据的表新建 ...

  7. 程序员的自我修养五Windows PE/COFF

    5.1 Windows的二进制文件格式PE/COFF PE文件格式事实上与ELF同根同源,它们都是由COFF格式发展而来. 5.2 PE前身——COFF 在win下,Command Prompt fo ...

  8. JavaScript 学习笔记 - LocalStorage

    前言 本文主要介绍本地存储的基本使用,以及它和 Cookie.SessionStorage 的区别. 简单回顾 Cookie 在 HTML5 之前,本地存储数据一般是通过 Cookie 来完成的.我们 ...

  9. 基于ExtJs6前台,SpringMVC-Spring-Mybatis,resteasy,mysql无限极表设计,实现树状展示数据(treepanel)

    先从后台讲起 1.表的设计 parent_id就是另外一条记录的id,无限极表设计可以参考  http://m.blog.csdn.net/Rookie_Or_Veteran/article/deta ...

  10. H5输入框实时记录文字个数

    需求: 移动端用户反馈功能,有的用户反馈功能是有字数限制的,比如限制为200字 解决方法: 在项目中我们使用的Vue框架,所以可以直接进行绑定,代码如下 <section class=" ...