一、本周学习总结

1.1 面向对象学习暂告一段落,请使用思维导图,以封装、继承、多态为核心概念画一张思维导图,对面向对象思想进行一个总结。

二、书面作业

1、clone方法

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

 答:之前学过用protected修饰,它只能被同包内的类和子类所访问;所以在在自定义的类中覆盖clone方法时,我们可以将protected改为用public,这样就增大clone的使用范围。

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

 答:上题说到protected修饰的变量或方法只能被同包类或者子孙类继承或使用,以作业Shape为例的话,我们分别设计了Circle类和Rectangle类,因为Circle类和Rectangle类都继承Shape类型,且Shape中的getPerimeter与getArea分别为计算面积与周长的方法,所以就可以直接调用getPerimeter()与getArea()两种方法,这里就可以用protected修饰。

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

 答:不能成功,因为Employee类和TestProtected类不在同一个包内,也不是继承关系。不过可以插入import test1.Employee或者让TestProtected继承Employee类。

2、使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类的题目5-2。仅需粘贴关键代码与运行结果,图片不要太大。

 原先的代码:

 运行结果:

 如果用匿名类与Lambda表达式改写:



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

 Comparator<Shape> shapeComparator = new  Comparator<Shape>() {
@Override
public int compare(Shape o1, Shape o2) {
//你的代码
}
}; 答:shapeComparator实现了Comparator接口。

4、GUI中的事件处理

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

 答:最重要的关键字分别是事件源,事件对象和事件监听器。

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



 图中的代码:

 public class EventObject implements java.io.Serializable {
protected transient Object source;
public EventObject(Object source);
public Object getSource();//获得事件源
public String toString();
}
public class MainGUI {
public static void main(String[] args) {
JFrame f = new JFrame("Test");//创建一个事件模板
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton b = new JButton("Press Me!");//事件源
b.addActionListener(new ButtonHandler());//注册监听器
f.add(b);
f.setSize(200, 100);
f.setVisible(true);
}
private static class ButtonHandler implements
ActionListener{//监听器
public void actionPerformed(ActionEvent e) {
System.out.println("Action occurred");
System.out.println(e.getSource());//获得事件源
}
}
}

5、结对编程:面向对象设计(大作业2-非常重要,未完成-2),继续完善上周的项目作业。考核点如下:

5.1 尝试使用图形界面改写。

5.2 给出两人在码云上同一项目的提交记录截图。

5.3 与上周相比,项目的主要改动是什么?

三、码云上代码提交记录及PTA实验总结

题目集:jmu-Java-04-面向对象2-进阶-多态接口内部类

3.1. 码云代码提交记录

在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

3.2. PTA实验

函数(选做:4-1)、编程(5-3, 5-4),一定要有实验总结。

 实验总结:
(1)、学会了定义接口,如;5-3 定义IntegerStack接口;
(2)、学会如何在类内部创建一个静态内部类以及其方法,如:5-4 定义类ArrayUtils,在该类内部创建一个静态内部类PairResult以及为ArrayUtils类创建一个静态方法PairResult findMinMax(double[] values);
(3)、感觉接口用起来更加方便,本周实验比较简单,但是在编写的时候仍然觉得基础不扎实,有待提高。

201521123103 《Java学习笔记》 第六周学习总结的更多相关文章

  1. 20145337 《Java程序设计》第六周学习总结

    20145337 <Java程序设计>第六周学习总结 教材学习内容总结 输入\输出 InputStream与OutputStream 从应用程序角度来看,如果要将数据从来源取出,可以使用输 ...

  2. 20145218 《Java程序设计》第六周学习总结

    20145218 <Java程序设计>第六周学习总结 教材学习内容总结 第十章 输入/输出 10.1 InputStream与OutputStream 10.1.1 串流设计的概念 Jav ...

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

    20145224 <Java程序设计>第六周学习总结 教材学习内容总结 第十章输入和输出 10.1.1 ·若要将数据从来源中取出,可以使用输入串流:若要将数据写入目的地,可以使用输出串流. ...

  4. 20155304 2016-2017-2 《Java程序设计》第六周学习总结

    20155304 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 第十章 串流设计的概念 无论来源和目的地实体形式是什么,只要取得InputStream和Ou ...

  5. 20175212童皓桢 《Java程序设计》第六周学习总结

    20175212童皓桢 <Java程序设计>第六周学习总结 教材学习内容总结 第七章 内部类与异常类 1.内部类 Java支持在一个类中定义另一个类,这样的类称作内部类,包含内部类的类称为 ...

  6. 20175234 2018-2019-2 《Java程序设计》第六周学习总结

    20175234 2018-2019-2 <Java程序设计>第六周学习总结 教材学习内容总结 第七章内部类和异常类 总结 Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内 ...

  7. 20165235 祁瑛 2018-4 《Java程序设计》第六周学习总结

    20165235 祁瑛 2018-4 <Java程序设计>第六周学习总结 教材学习内容总结 常用实用类 (一)1.String类是final类型的,String类型常量也是对象.2.可以使 ...

  8. 20175314 《Java程序设计》第六周学习总结

    20175314 <Java程序设计>第六周学习总结 教材学习内容总结 第七章:内部类与异常类 内部类:内部类就是在一个类中再定义一个类,这个在类中定义的类就叫做内部类,而包含内部类的类叫 ...

  9. 20172325 2018-2019-2 《Java程序设计》第六周学习总结

    20172325 2018-2019-2 <Java程序设计>第六周学习总结 教材学习内容总结 本周学习第十章--树 1.什么是树 (1)树是一种数据结构,与之前学过的栈.队列和列表这些线 ...

  10. 20155330 2016-2017-2 《Java程序设计》第六周学习总结

    20155330 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 学习目标 理解流与IO 理解InputStream/OutPutStream的继承架构 理解 ...

随机推荐

  1. 基于Dubbo的压测调优实例

    不久前参与开发了一个基于dubbo分布式框架的底层账单系统,并实现了其中的一部分业务接口,目前需对这些接口进行压测,以评估生产环境所能承受的最大吞吐量.笔者以其中一个查询接口为例来回顾此次压测的整体流 ...

  2. [SDOI2011]染色 线段树+树链剖分

    考试一共四个半小时,光这道题就打了三个小时..然后又改了俩小时才过.我太蒟蒻了. 其实数据结构这种题就看第一遍打没打顺,顺了就A了,要是再找错再改就慢了,而且样例过了不能说明任何问题(虽然考试的时候我 ...

  3. [算法题] Search in Rotated Sorted Array

    题目内容 本题来源LeetCode Suppose an array sorted in ascending order is rotated at some pivot unknown to you ...

  4. 【NO.1】Jmeter-安装JDK- 配置Jmeter运行的环境 - 是使用Jmeter的前提

    本篇文档是描述:当我们遇到没有安装JDK的Windows系统的电脑.Linux系统的电脑的时候,该怎么来安装JDK. 如果你不安装JDK,那么就没办法开始使用Jmeter. JDK下载地址 http: ...

  5. ARC和MRC 兼容的单例模式

    一.ARC下的单例实现 说明:在用户实例化的方法控制单次执行,同时开放单例的初始化方法. -(instancetype)init{ self=[super init]; if(self){ stati ...

  6. Python 数据模型

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 25.0px Helvetica } 一摞Python风格的纸牌 from collections impo ...

  7. Fiddler设置代理(PC和Android)

    Fiddler设置 打开Fiddler,进入Tools--->Fiddler Options,勾选以下信息:   OK,就配置完成了.   PC端设置: 以火狐为例,打开选项--->高级 ...

  8. Spring中Druid链接池的配置

    本文记录了使用Druid的方法, 包括Spring和Spring boot中使用Druid的配置方法. Spring中配置Druid连接池 以链接mysql为例 1 添加druid依赖 <dep ...

  9. spring(四)之基于注解(Annotation-based)的配置.md

    注解 这里讲的注解有下面几个 @Autowired @Qualifier(" ") @Genre(" ") @Offline @Resource(name=&q ...

  10. jquery layer弹窗弹层插件 (转)

    /* 先去官网下载最新的js  http://sentsin.com/jquery/layer/ ①引用jquery ②引用layer.min.js */ 触发弹层的事件可自由绑定,如: $('#id ...