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. 【机器学习笔记之四】Adaboost 算法

    本文结构: 什么是集成学习? 为什么集成的效果就会好于单个学习器? 如何生成个体学习器? 什么是 Boosting? Adaboost 算法? 什么是集成学习 集成学习就是将多个弱的学习器结合起来组成 ...

  2. 使用Openfire配置安卓客户端聊天服务器

    Openfire是一种即时通信服务器,采用开放的XMPP协议,您可以使用各种支持XMPP协议的IM客户端软件登陆服务. Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP( ...

  3. Vue列表过渡

    前面的话 本文将详细介绍Vue列表过渡 概述 前面分别介绍了单元素CSS过渡和JS过渡,以及多元素过渡.如何同时渲染整个列表呢?在这种情景中,需要使用<transition-group>组 ...

  4. 初次搭建vue环境(最基础的)

    一直以来觉得搭建环境是自己的短板,恰巧老大跟我说他刚才面试一个有4年工作经验的人,给那面试的人出了到机试题,给了1小时的时间连环境都没搭好.且不说那人的工作经验是否掺有水分,自己还是有点尴尬的,以前的 ...

  5. SQL语句:Group By总结

    1. Group By 语句简介: Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)".它的作用是通过一定的规则将一个数据集划分成若干个 ...

  6. 安装zsh后出现命令行无法识别已安装的node

    安装zsh之后,在命令行输入 node -v,会出现 command not found: node. 出现原因是:使用bash输入终端指令识别得是~/.bash_profile,而安装zsh则无法识 ...

  7. Vue keep-alive实践总结

    <keep-alive>是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM. <keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是 ...

  8. mysql存储过程查询结果循环遍历 判断 赋值 游标等基本操作

    一.首先说下本篇博客所实现功能的背景和功能是怎样的: 背景:因为公司项目开始迁移新平台项目,所以以前的平台老数据以及订单信息需要拆分表,而且需要业务逻辑来分析以前的订单表,来拆分成另外的几个新表,包括 ...

  9. WPF蒙板弹窗

    由于界面设计需要,要给弹窗添加蒙板效果,在百度和google搜索了半天,竟然没有一个满意的方案,最后只能自己想办法实现了一个,原理还是比较简单的,现在分享给大家. 先看一下效果..      原理其实 ...

  10. Linux企业运维人员最常用150个命令汇总

    命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) l ...