1. 本章学习总结

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

2. 书面作业

Q1.clone方法

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

答:在自定义的类中覆盖clone方法时,子类必须实现Cloneable接口,否则即使覆盖了clone()方法,仍然会抛出异常(CloneNotSupportedException)。

(注:参考链接 详解Java中的clone方法 http://blog.csdn.net/zhangjg_blog/article/details/18369201

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

答:被声明为protected的成员,在相同的包中的类可以直接存取,不同的包中的类可以在继承后的子类直接存取。以作业Shape为例,如protected final double PI=3.14;就是希望PI只能够被其他包的子类调用。

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

答:运行结果如下:



显然在test1包中编写简单的Employee类,在test2包中新建一个TestProtected类,并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象是无法成功的。protected关键字在不用的包类只有子类可以存取,此时可以用pubilc。

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

答:

(1)匿名内部类

Comparator<PersonSortable2> NameComparator = new Comparator<PersonSortable2>() {
   public int compare(PersonSortable2 obj1,PersonSortable2 obj2) {
            if (obj1.getName() .compareTo(obj2.getName()) > 0)
                return 1;
            else if (obj1.getName().compareTo(obj2.getName()) < 0)
                return -1;
            else
                return 0;
        }
    };

Comparator<PersonSortable2> AgeComparator = new Comparator<PersonSortable2>() {
    public int compare(PersonSortable2 obj1,PersonSortable2 obj2) {
          if (obj1.getAge() > obj2.getAge())
                return 1;
          else if (obj1.getAge() < obj2.getAge())
                return -1;
          else
                return 0;
        }
  };

(2)>Lambda表达式:

   Comparator<PersonSortable2> NameComparator=(o1,o2)-> o1.getName().compareTo(o2.getName());
   Comparator<PersonSortable2> 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接口,使其对象能够使用Arrays.sort进行排序。

Q.4.GUI中的事件处理

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

1) 事件源(Event Source):即事件发生的场所,就是指各个组件,如按钮等,点击按钮其实就是组件上发生的一个事件;
2) 事件(Event):事件封装了组件上发生的事情,比如按钮单击、按钮松开等等;
3) 事件监听器(Event Listener):负责监听事件源上发生的特定类型的事件,当事件到来时还必须负责处理相应的事件;

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

  private void registerListener() {
    BtnListener btnListener = new BtnListener();
    btnFirst.addActionListener(btnListener);
    btnPrevious.addActionListener(btnListener);
   }// 产生一个事件监听器对象

class BtnListener implements ActionListener {
  @Override
   public void actionPerformed(ActionEvent e){
       Object obj = e.getSource();// 获得当前点击的事件源
   if (obj == btnFirst) {
       cardLayout.first(cardPanel);
         }
   else{
       cardLayout.previous(cardPanel);
         }

Q5.结对编程:面向对象设计

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

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

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

答:

登陆界面:



搜索界面:

和上周相比,在同学的帮助下,完善了整个编程设计并用图形界面进行了改写,但是对于图形界面的编程仍然不够熟悉,需要再多思考多实践。

3.本周码云代码Commit历史截图

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

4. PTA实验总结

实验1

1.自定义接口ArrayIntegerStack完成一个能存储Integer元素的栈。同时得知道栈的基本特点,在判断栈满和栈空的时候,容易出错。

实验2

1.静态内部类的熟悉以及使用。

2.在静态内部类中可以定义静态的成员(非静态内部类中不可以)。

3.静态内部类中只能访问外部类的静态成员。

201521123026 《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. 多表连接的三种方式 HASH MERGE NESTED

    多表连接的三种方式详解 HASH JOIN MERGE JOIN NESTED LOOP------------------------------------------------------20 ...

  2. 云计算之openstack mitaka 配置详解(将疑难点都进行划分)

    在配置openstack项目时很多人认为到处是坑,特别是新手,一旦进坑没有人指导,身体将会感觉一次次被掏空,作为菜鸟的我也感同身受,因为已经被掏空n次了. 以下也是我将整个openstack配置过程进 ...

  3. MySQL数据库— 汇总和分组数据

    一 汇总和分组数据 查询语句 ---> 结果集(多条数据) ---> 聚合函数  ----> 单行记录 1.常用的聚合函数: sum()         数字             ...

  4. 《STL源码剖析》相关面试题总结

    原文链接:http://www.cnblogs.com/raichen/p/5817158.html 一.STL简介 STL提供六大组件,彼此可以组合套用: 容器容器就是各种数据结构,我就不多说,看看 ...

  5. Linux Socket多线程实现简单的多人聊天(pend)

    Server: 设置可聊天数为5,为每一个client创建一个线程,这个线程负责接收client的聊天内容并发给其他用户看. 用mutex同步各个线程修改聊天室空余聊天位. Client: 主线程负责 ...

  6. SQL优化二(Sql性能调优)

    一·.前言:这篇博文内容非原创,是我们公司的架构师给我们做技术培训的时候讲的内容,我稍微整理了下,借花献佛.这篇博文只是做一个大概的科普介绍,毕竟SQL优化的知识太大了,几乎可以用一本书来介绍.另外, ...

  7. [翻译] C# 8.0 预览

    原文: C# 8.0 Previewed 在一个Channel 9 的视频中,Mads Torgersen展示了C#8的首批四个新特性. 可空引用类型 过去我们报道过可空引用类型,简单地说,默认情况下 ...

  8. 实现多条件模糊查询SQL语句

    很多网友问到如何写模糊查询语句和多条件查询,这里我整理了一下,假设以姓名.性别.电话号...作为数据库中的字段名. 通常写一个简单的模糊查询的SQL语句格式可以如下例: sql="selec ...

  9. BotVS开发基础—2.4 获取订单、取消订单、获取未完成订单

    代码 RetryDelay = 1500; def CancelPendingOrders(exch, orderType): # 取消所有未完成的挂单, 参数1 交易所 参数2 类型 global ...

  10. java web轻量级开发面试教程读书笔记:建索引时我们需要权衡的因素

    场景一,数据表规模不大,就几千行,即使不建索引,查询语句的返回时间也不长,这时建索引的意义就不大.当然,若就几千行,索引所占的空间也不多,所以这种情况下,顶多属于"性价比"不高. ...