1. 本周学习总结

2. 书面作业

1.clone方法

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

实现克隆必须实现Cloneable接口,如果clone类没有实现Cloneable接口,并调用了Object的clone()方法,那么Object的clone()方法就会抛出CloneNotSupportedException异常。

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

关键字 类内部 相同包类 不同包类
public 可存取 可存取 可存取
protected 可存取 可存取 子类可存取
可存取 可存取 不可存取
private 可存取 不可存取 不可存取

当方法不需要被不同包、非子类的类使用时可以用protected修饰。

作业Shape中,shape的周长和面积对于不同的shape("Circle or Rectangle or other is a Shape")有着相同的意义,shape 作为Shape的子类,使用周长和面积方法无可厚非,但是如果有一个Person类(八竿子打不着的、不同包类),对其权限就得限定,此时用protected正合适.

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

package test1;
public class Employee implements Cloneable{
public Employee() {
super();
// TODO Auto-generated constructor stub
}
@Override
protected Object clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return super.clone();
}
}
package test2;
import test1.Employee;
public class TestProtected {
public static void main(String[] args) {
Employee e=new Employee();
Employee em=e.clone();
}
}

并不能成功clone,提示不可见,简单来说权限不够

2.使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类的题目5-2

仅需粘贴关键代码与运行结果,图片不要太大。

Comparator<PersonSortable2> NameComparator=(o1,o2)-> o1.getName().compareTo(o2.getName());
Comparator<PersonSortable2> AgeComparator=(o1,o2)-> o1.getAge()-o2.getAge();
Collections.sort(person,NameComparator);
Collections.sort(person,AgeComparator);

测试数据:

5
zhang 15
zhang 12
wang 14
Wang 17
li 17

运行结果:

NameComparator:sort
Wang-17
li-17
wang-14
zhang-15
zhang-12
AgeComparator:sort
zhang-12
wang-14
zhang-15
Wang-17
li-17

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

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

实现Comparator接口,并重写接口中的抽象方法

4.GUI中的事件处理

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

事件:用户在GUI组件上进行的操作,比如敲击键盘 、点击鼠标或者是关闭窗口之类的动作。

事件源:能够产生事件的GUI组件对象,如按钮、文本框这些。

事件监听器:每种事件类都有一个负责监听这种事件的接口,接口中定义了处理该事件的抽象方法。

事件适配器:定义事件监听器的时候可以继承这个适配器,并重写部分所需要的方法,而不需要定义所有的抽象方法。

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

事件-->事件源-->事件监听器

private class KeyMonitor extends KeyAdapter {//事件监听器

		public void keyReleased(KeyEvent e) {//按键弹起
myTank.keyReleased(e);//Tank作出相应的停止动作
}
public void keyPressed(KeyEvent e) {//按下按键
myTank.keyPressed(e);//Tank作出相应的方向移动
} }

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

3.1. 码云代码提交记录

3.2. PTA实验总结

(1)用数组实现栈,对于栈元素个数有特殊限制,必须要先定义才能使用,且不能超出这个个数。如果改用ArrayList的话,可以实现随时添加的功能,而不是局限于有限个数。
(2)接口的实现,相比于继承,更灵活,继承时需满足is-a的关系,如有有一个Person has-a swim 属性,Fish has-a swim 属性,但是Person和Fish明显不是“同类”,所以采用has-a关系的接口更为合适。接口在细节方面能够更好地体现多态性

201521123023《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. AIX安装恢复oracle问题-内存不足

    AIX安装恢复oracle问题-----------------------2013/10/19 oracle 安装后后,进行rman恢复数据库时,启动不了dummy实例,报内存不足   RMAN&g ...

  2. S7-200PLC间的PPI通信

    一. PPI通信协议是一种主从式的通信协议,上位机即PC机为主,PLC为从.通信开始由计算机发起,PLC予以响应. 1).计算机按通信任务,用一定格式,向PLC发送通信命令. 2).PLC收到命令后, ...

  3. Oracle12c 在windonServer2012中安装的步骤

    oracle12c在windownServer2012中安装步骤  前期工作:<这个必须要安装:而且c$的C必须大写> 第一步:控制面板>所有控制面板项>管理工具>服务& ...

  4. shell学习笔记(一)

    1.第一行必须以#!/bin/bash #!表示脚本使用后面的解释器解释执行 2.echo 打印输出 例如   echo "hello world" > aa.txt 3.接 ...

  5. pycharm中的快捷键和简单设置

    PyCharm3.x默认快捷键 PyCharm Default Keymap 1.编辑(Editing) Ctrl + Space    基本的代码完成(类.方法.属性)Ctrl + Alt + Sp ...

  6. 百度鹰眼Java接口调用增删改查实例

    因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试.刚开始使用springframework封装的RestTemplate,但是测试提示ak参数不存在.后又试了几种方法,均提示a ...

  7. Hue集成Hadoop和Hive

    一.环境准备 1.下载Hue:https://dl.dropboxusercontent.com/u/730827/hue/releases/3.12.0/hue-3.12.0.tgz 2.安装依赖 ...

  8. 安装lvs过程

    linux我是最小化安装的mini,安装完成后搭建本地yum,首先安装Development Tools开发工具组 1)在各服务器上修改主机名: [root@LVS1 ~]# hostname LVS ...

  9. jQuery框架Ajax常用选项

    json(JavaScript Object Notation):轻量级的数据交换(交换的数据转换成与平台无关的)格式 java对象转换成json字符串:使用ObjectMapper类的writeVa ...

  10. echarts堆叠图展示,根据数据维度的粒度判断是否展示数据

    1.定义一个参数,返回根据判断什么条件是否显示值; 2.var a = '<%=(String)request.getAttribute("type")%&>' ...