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. Canvas 旋转风车绘制

    写在前面:   亲爱的朋友们大家好,鄙人自学前端,第一次写博客,写的不好的地方,烦请同学们谅解,如果本文对你有一丁点帮助,还请劳驾您给我点个赞,您的认可将是我坚持下去的强大动力!谢谢! 在进行教学之前 ...

  2. .net到Java那些事儿--整合SSH

    一.介绍       整体介绍分成两个部分,第一.net转到Java的原因,第二开发SSH时候的环境介绍:       .net到Java的原因: .net开发也将近快3年的样子,加上现在的老东家换过 ...

  3. JavaScript之节点的创建、替换、删除、插入

    1.节点的创建 节点的创建使用document.creatElment();文本节点的创建使用document.creatTextNode();如想把<li>哈密瓜</li>添 ...

  4. webpack打包体积优化

    优化: 1:外部引入模块(cdn)     如 jquery,zepto,d3, bootstrap这些固定的lib 使用cdn直接引用就可以,没有必要打包到build,有效利用302. 2:图标优化 ...

  5. PHP数组的基本操作及遍历数组的经典操作

    <?php 索引数组//数组第一种定义 $arr = array(1,2,3);var_dump($arr); //数组第二种定义$arr = [1,2,3];var_dump($arr); / ...

  6. C# 移动无标题栏窗体的几种方法

    第一种,手工移动. 该方法根据鼠标位置实现窗体的移动.网上有很多相关的例子,这里不再多讲. 第二种,调用系统API原理:是当鼠标左键按下时,让系统认为是在标题栏按下的.这里我们用到了winapi里的W ...

  7. Ignite Web 控制台(使用官方免费部署的控制台)

    前提: 假设已安装ignite,并且安装路径为:/usr/apache-ignite-fabric-2.1.0-bin 1.下载Web Agent 打开链接:https://console.gridg ...

  8. SQL语句:Group By总结

    1. Group By 语句简介: Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)".它的作用是通过一定的规则将一个数据集划分成若干个 ...

  9. python--注释

    python中单行注释用#,多行注释用""",看下面的代码: #!/usr/bin/python #coding:utf-8 #编码方式 #打印一行* print &qu ...

  10. Basic Skill

    Get current script path script=$() Check for root user ] ; then echo "current user is not root ...