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. 计蒜客模拟赛D2T1 蒜头君的兔子:矩阵快速幂

    题目链接:https://nanti.jisuanke.com/t/16442 题意: 有个人在第一年送了你一对1岁的兔子.这种兔子刚生下来的时候算0岁,当它在2~10岁的时候,每年都会生下一对兔子, ...

  2. Vue内容分发slot

    前面的话 为了让组件可以组合,需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 “transclusion” ).Vue实现了一个内容分发 API,参照了当前 Web ...

  3. css基础知识之列表

    ul.li列表样式部分如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  4. 项目记事【SpringMVC-1】:后台接收前端传来的JSON,并转成对象

    背景: 最近项目中使用SpringMVC,需要从前端接收JSON格式的请求,在后端自动转成一个与JSON格式相同的对象. 由于是一个老项目,Spring的版本是3.2.7. 问题1:POST or G ...

  5. nGrinder 简易使用教程

    背景 性能压测工具之前使用的是jmeter,这次说的是nGrinder,先直接搬运两者之间的比较 比较点 JMeter nGrinder 结果 实现语言 Java Java = License Apa ...

  6. mysql alter使用

    修改表名: ALTER  TABLE Table_name_A RENAME TO Table_name_B; //增加主键 alter table tabelname add new_field_i ...

  7. ionic实战系列(一):ionic的开发环境配置和编译、发布

    我的ionic实战系列是基于<<Ionic实战>>[美]Jeremy Wilken著-这本书的读书笔记,有诸多借鉴,不详细的地方请参考书籍本身的内容. 1.1技术栈模型 Ion ...

  8. Eclipse常用快捷键记录

    Eclipse简介: Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.幸运的是,Eclipse 附带了一个标准的 ...

  9. Html5笔记之第五天

    Html5增强的文件上传域 <!DOCTYPE html> <html> <head> <title>Html5增强的文件上传域</title&g ...

  10. java private修饰的类和变量

    private主要用来修饰变量和方法,一般不会用来修饰类,除非是内部类. 1.new对象 被private修饰的变量和方法,只能在自己对象内部使用,其他对象即使是new你这个对象也是获取不到被priv ...