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. 一次使用pywin32学到的知识

    FindWindow这个函数检索处理顶级窗口的类名和窗口名称匹配指定的字符串.这个函数不搜索子窗口. FindWindowEx:FindWindowEx是在窗口列表中寻找与指定条件相符的第一个子窗口 ...

  2. shell变量的替换,命令的替换,转义字符

    1,shell变量的替换 变量可以根据变量是否为空或者被删除,而被替换为特定的值 ${var}  变量本来的值 $(var:-word)   如果变量为空,或者已被删除那么返回word,但是不改变va ...

  3. umask的作用

    --umask的作用---------------2013/11/15 umask的作用就是当用户创建一个文件时,设置默认的目录和文件权限. 创建非目录文件时,用666减umask值(目录文件用777 ...

  4. Java范型

    泛型不用考虑对象的具体类型.优点在于,因为不用考虑对象的具体类型所以可以对一类对象执行一定的相同操作:缺点在于,因为没有考虑对象的具体类型所以就不能使用对象自带的接口函数.泛型的最佳用同是实现容器类. ...

  5. Fortran调用C语言小计

    先简单记录下问题,以后再给续解决方案 1,关于fortran中module的使用 2,没有参数可以正常调用,当需要传递参数时,由于两者语言的差异,字符串结束符号不同,应该注意 3,关于调用C函数时,调 ...

  6. 常用perl脚本工具

    1.批量添加license:PrefixLicense.pl (1)给单一c/c++源文件添加license: perl PrefixLicense.pl apache_license src_fil ...

  7. NetBeans主题配色方案加设置.md

    1.网上下载主题的地址是:http://netbeansthemes.com/ **上面的主题我看了下但是感觉不太适合自己所以自己就仿照的设置了下下面我附上自己的配置信息 感兴趣的可以下载下来自己看下 ...

  8. 京东地址导航js+css

    HTML------------------------------------------------<!DOCTYPE html><html lang="en" ...

  9. Dynamics 365中部分账号使用系统明显缓慢怎么办?先这么干!

    摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复263或者20170828可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyon ...

  10. extjs6中grid里放置图片

    1.加黑体的是实现代码,在view中操作 /** * Created by Wwei on 2017/7/1. */ Ext.define('Admin.view.userpanoram.UserPa ...