1.本周学习总结

2.书面作业

1.clone方法

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

因为被protected修饰,所以不能在类的外部使用。如果在自定义的类中覆盖clone方法,需要把protected改为public

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

protected的访问范围是同包/子类/本类,如果当希望这个方法只被同包和子类访问时,可以使用protected。在Shape中,getPerimeter与getArea这两种方法可以。

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

不能。需要把clone方法的protected改成public。

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

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

匿名类

Comparator<PersonSortable2> NameComparator = new Comparator<PersonSortable2>(){
    @Override
    public int compare(PersonSortable2 o1, PersonSortable2 o2) {
        if(!o1.getName().equals(o2.getName())){
            if(o1.getName().compareTo(o2.getName())>0)
            return 1;
            else
                return -1;
        }
        return 0;
    }
};

Comparator<PersonSortable2> AgeComparator = new Comparator<PersonSortable2>(){
    @Override
    public int compare(PersonSortable2 o1, PersonSortable2 o2) {
        if(!(o1.getAge()==o2.getAge())){
            if(o1.getAge()>o2.getAge())
                return 1;
            else
            return -1;
        }
        return 0;
    }
};

Lambda

Comparator<PersonSortable2> AgeComparator = (o1,o2)->{
    if(!(o1.getAge()==o2.getAge())){
        if(o1.getAge()>o2.getAge())
            return 1;
        else
            return -1;
    }
    return 0;
};
Comparator<PersonSortable2> NameComparator = (o1,o2)->{
    if(!o1.getName().equals(o2.getName())){
    if(o1.getName().compareTo(o2.getName())>0)
        return 1;
    else
        return -1;
    }
    return 0;
};

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

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

shapeComparator所指向的对象操作了Comparator这个接口,使用匿名内部类实现了Comparator接口并重写了其中的抽象方法。

4.GUI中的事件处理

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

事件/事件源/事件监听器

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

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 与上周相比,项目的主要改动是什么?

成功组队= =

3.码云

4.PTA

5.3 用栈来存储输入的值,所以可以建一个标记top,记录栈顶位置,看看是否栈空或栈满。

5.4 在类中要使用内部静态类方法的时候,可以类名.方法名调用。

201521123008《Java程序设计》第六周实验总结的更多相关文章

  1. 201521123008<java程序设计>第三周实验总结

    1.本周学习总结 2.书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; pub ...

  2. 201521123008《Java程序设计》第二周实验总结

    本周学习总结 ① 数据类型,其中char是占用两个字节的内存空间,其他和以前学过的一样.除了十进制位,整型也可以用八进制或者十六进制表示.浮点型不精确. ②运算符,算术,赋值,逻辑,位运算. ③str ...

  3. 201771010123汪慧和《面向对象程序设计JAVA》第六周实验总结

    一.理论部分: 1.继承 用已有类来构建新类的一种机制.当定义了一个新类继承了一个类时,这个新类就继承了这个类的方法和域,同时在新类中添加新的方法和域以适应新的情况. 2.类.超类.子类 (1)类继承 ...

  4. 201521123122 《java程序设计》第九周学习总结

    201521123122 <java程序设计>第九周实验总结 1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 常用异常 题目5-1 1.1 截图 ...

  5. 201621123005《Java程序设计》第九次实验总结

    201621123005<Java程序设计>第九周实验总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 ...

  6. 201521123122 《java程序设计》 第六周实验总结

    201521123122 <java程序设计>第六周实验总结 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想 ...

  7. 20175314 《Java程序设计》第九周学习总结

    20175314 <Java程序设计>第九周学习总结 教材学习内容总结 根据课本的介绍下载了MySQL和Navicat for MySQL并成功对后者进行破解 MySQL客户端管理工具(如 ...

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

    20165235 祁瑛 2018-4 <Java程序设计>第九周学习总结 教材学习内容总结 URL类 UR类是java.net包中的一个重要类,使用URL创建的对象的应用程序称作称作客户端 ...

  9. 20155312 2016-2017-2 《Java程序设计》第九周学习总结

    20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...

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

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

随机推荐

  1. 两个List比较各自对象的属性相同的问题

    最近做checkbox默认勾选的时候,涉及到两个list直接比较彼此对象的Id属性是否相同的问题.能力有限,想到这个笨方法. 创建一个Bean: public class Bean { private ...

  2. shell 字符串

    字符串可以分为单引号,双引号,也可以不用引号 单引号 str='this is string' 单引号字符的限制: 单引号中的任何字符都会原样输出,单引号中变量是无效的 单引号中不能出现单引号 双引号 ...

  3. Android WebView 调试方法

    调试Android WebView中的h5页面,通常就是通过alert和抓包工具来定位问题,效率低且无法直接调试样式或打断点,可谓是事倍功半.本文介绍一下我在项目中使用的新方法,能够通过chrome的 ...

  4. ccache - 让Xcode编译速度飞起来

    今天来介绍一个小工具ccache,其可以提高xcode的编译速度.说起缘由,是因为我的苹果电脑配置比较低,而每次开发调试或测试打包都需要编译工程,虽然项目工程代码量不算大,但是编译的时间还是很长,尤其 ...

  5. 如何获取Azure Storage Blob的MD5值

    问题表述 直接使用CloudBlockBlob对象获取的Properties是空的,无法获取到对象的MD5值,后台并未进行属性值的填充 前提:blob属性本省包含md5值,某些方式上传的blob默认并 ...

  6. 转每天一个linux命令(14):head 命令

    head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾. 1.命令格式: hea ...

  7. maven 搭新建成之后 无法创建 src/main/java 目录解决

    maven项目创建后 创建 src/main/java     和   src/main/test 会报错,目录已存在 打开build path 界面    src/main/java     和   ...

  8. ASM的备份集在文件系统上恢复测试

    背景:最近时常有客户咨询这类问题,其实很简单一个操作,但由于每个人的理解差异,也容易出现各种问题或者误解,本文主要总结下这个过程以及常遇到的问题处理. 环境:Site A(Oracle RAC 11. ...

  9. Spring MVC请求执行流程

    学习Spring MVC时间有点长了,但是最近打算找工作,需要重新了解下,所以又去温故知新了.Spring MVC就是用来写web的框架,简化你写web的一些不必要的流程,让程序员能专注于业务逻辑也就 ...

  10. 数据库索引B-树和B+树

    一开始学习数据结构的时候,主要学习的是数组,队列,链表,队列,栈,树这些数据结构,其中树主要学习二叉树,平衡二叉树,二叉搜索树等这些子节点最多只有两个的树结构.但是,当我们接触数据库的时候,你会发现数 ...