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上的时候一直显示编译错误。
201521123067 《Java程序设计》第6周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- 诡异错误一: ValueError: embedded null character
使用如下语句读取名为0_xx.txt 文件时,遇到错误 ValueError: embedded null character if __name__ == '__main__': fr = ope ...
- 关于MDK下pack的定义方法
我们使用数据流的过程中经常会用到结构体来进行解析,这个时候就需要使用字节对齐这个概念.不同的编译器的处理方法不一样. 这里小结一下MDK里面常用的几种方法: 1. 最常见的一种 使用#pragma p ...
- HTML——CSS的基础语法2
一.盒模型 1-1.什么是盒模型? HTML5盒模型包括:内容(content).填充(padding.也叫做内边距).边框(border).边界(margin,也叫做外边距). 这些属性我们可以用日 ...
- 360春秋杯CTF比赛WRIteUP
题目:where is my cat? 地址:http://106.75.34.78 访问网页出现证书错误的问题,查看证书如下: 抓包发现: Accept-Encoding: gzip, deflat ...
- centos 7.2 配置Nginx
1.添加资源 添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令(没有换行): rpm -Uvh http://nginx.org/packages/centos/7/noarch ...
- 前后端分离(手)-- 使用mock.js(好样的)
## 前言: 本篇博文昨天七夕写的,一天下来被虐得体无完肤,苦逼的单身狗只能学习,对!我爱学习,关掉朋友圈,并写了一篇博文发泄发泄.这次写mock.js的使用,能使前后端分离,分离,分离,重要的是说三 ...
- Pyinstaller(python打包为exe文件)
需求分析: python脚本如果在没有安装python的机器上不能运行,所以将脚本打包成exe文件,降低脚本对环境的依赖性,同时运行更加迅速. 当然打包的脚本似乎不是在所有的win平台下都能使用, ...
- 迈向angularjs2系列(8):angular cli和angular2种子项目
文章目录 1.angular cli快速搭建项目 2.angular2-seed 3.手动配置 题外话:如何更好的阅读本篇文章 一: angular cli的安装 Angular-cli(命令行界面, ...
- redis集群搭建及注意事项
上一篇:redis的安装及注意事项 这里,在一个Linux虚拟机上搭建6个节点的redis伪集群,思路很简单,一台虚拟机上开启6个redis实例,每个redis实例有自己的端口.这样的话,相当于模拟出 ...
- 使用VMware Workstation安装win7镜像文件时遇见的错误
最近打算使用虚拟机安装个系统玩玩,就去网站上找了教程安装下win7系统.但是在安装过程中遇见两个问题,现在把遇见的问题总结记录一下,以及解决方法罗列一下. 我当时使用的是VMware 12版的,系统是 ...