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. HTML 基本标签01

    ↑ !DOCTYPE 文档类型声明:让浏览器,按html5的标准对代码进行解释与执行 文档类型声明必不可少,而且,必须放在文档最上方 如果不写文档类型声明,浏览器会默认按照兼容模式运行,可能会出现不明 ...

  2. selenium--关键字驱动

    package com.dn.twohomework;import java.util.ArrayList;import java.util.Set;import java.util.List;// ...

  3. 【LeetCode】数组-1(643)-返回规定长度k的最大子数组的平均数

    好久没有刷LeetCode了,准备重拾并坚持下去,每天刷个两小时.今天算是开始的第一天,不过出师不利,在一道很简单的题目上墨迹半天.不过还好,现在踩过的坑,应该都不会白踩,这些可能都是以后程序员路上稳 ...

  4. 一步一步学J2SE-HashMap的实现原理

    HashMap数据结构图 HashMap的数据结构是通过数组加链表实现的.数组是HashMap的主体,链表是为了解决Hash碰撞问题. HashMap的Get方法 1.  在get的时候首先判断key ...

  5. Ubuntu下Apache中部署Django

    环境:ubuntu12.04 server | apache2 | django1.6 | python2.7 | mod_wsgi 1. 安装apache2: sudo apt-get instal ...

  6. MySQL用户管理:添加用户、授权、删除用户

    文章首发于[博客园-陈树义],请尊重原创保留原文链接. 添加用户 以root用户登录数据库,运行以下命令: create user zhangsan identified by 'zhangsan'; ...

  7. 【可视化】Echarts3 在世界地图中绘制中国各省份的轮廓

    要在世界地图展现出来的情况下绘制中国省份的轮廓,根据现有的echarts-api是不可行的. 但好在echarts也提供了自定义地图的方式,使用echarts.registerMap();来实现 第一 ...

  8. HTML5-移动开发常用技巧与弹性布局的使用

    一.移动开发常用技巧 Viewport基本知识 设置布局Viewport的各种信息 1.width=device-width: 设置Viewport视口宽度等于设备宽度 2.initial-scale ...

  9. C/C++资料网站

    1.C语言基础知识讲解 http://c-faq-chn.sourceforge.net/ccfaq/node1.html 2.C++参考手册中文版 http://zh.cppreference.co ...

  10. DateTable转化为泛型集合

    public class ListUtil { public static List<T> ToList<T>(DataTable dt) { List<T> li ...