zoukankan      html  css  js  c++  java
  • 学号:201521123116 《java程序设计》第五周学习总结

    1. 本章学习总结

    2. 书面作业

    1.代码阅读:Child压缩包内源代码

    1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误。并分析输出结果。

    不能编译通过

    class Parent{
        private int i=1;//private应改成protected
        protected int j=2;
        protected int geti(){
            return i;
        }
        public void getj(){
            System.out.println(j);
        }
    }

    输出结果为

    1
    2a
    2
    1
    1
    2
    1

    1.2 另外一个包中的OutOfParentPackage.java,能否编译通过?提示什么错误?分析原因。

       答:不能编译通过;提示The type Parent is not visible需要将Parent类加上Public,将protected int j=2;改为public int j=2;

    1.3 回答:如果为了访问到protected修饰的属性或方法应该怎么办?

       答:将类前面的指定词改为public。

    Q2.abstract进阶:阅读GuessGame抽象类的设计与使用源代码

    2.1 Guess改造前代码很简单,而改造后的代码使用了抽象类、抽象方法看起来很复杂,那这样的改造到底有什么好处呢?

     答:好处是:改造前只能从控制台输出,改造后使用抽象类,可以在控制台还有对话框图形界面等输入。

    2.2 如果想将该游戏改造成图形界面,应该进行一些什么操作?

    答:重写抽象类,使得可以在对话框图形界面等输入。

    2.3 结合该例子,你觉得什么时候应该使用abstract?

     答:abstract(抽象)修饰符,可以修饰类和方法。如果是只想将一类对象的共同点抽象出来,成为代表该类共同特征的一个抽象概念,就可以用abstract修饰这个类的这个特征当作父类。

     2.4 重要:在这个例子中,变化的是什么,不变的是什么?尝试结合abstract、继承等概念进行说明。

     答:变化的是环境变量、网页、控制台等等,不变的是抽象类abstract,通过抽象类提供输入输出我们游戏的需要,从而完成一个完整的游戏。但是抽象类不能提供具体的输入和输出,而实现这个输入和输出的方法是继承。

     

    3.Comparable与Comparator

    3.1 描述Comparable接口的用途。为什么某个类实现了Comparable接口就可以直接使用Arrays.sort对其进行排序?

      答:这是让自定义类的对象变成“可比较的”对象,能被排序、查找等各类工具比较使用。

    3.2 有了Comparable接口为什么还需要Comparator接口呢?

    Comparable和Comparator都是用来实现集合中元素的比较、排序的。
    Comparable是在集合内部定义的方法实现的排序,位于java.lang下。
    Comparator是在集合外部实现的排序,位于java.util下。

    Q4.面向接口案例分析,阅读Case-StudentDao.zip案例

      4.1 画出类关系图,描述每个类与接口的作用。

    ·  Student类:只有名字这个属性的类,加上getter()、setter()、和toString()函数构造方法
    ·  StudentDao接口:提供三个抽象方法,写入学生数据、读取学生数据和显示所有学生信息
    ·  StudentDaoArrayImpl类:用数组来存放学生信息,具体实现接口的三个抽象方法,读取学生信息,如果找不到返回null;如果找完所有数组都没找到学生信息返回false。
    ·  StudenDaoListImpl类:用列表来存放学生信息,具体实现接口的三个抽象方法。
    4.2 StudenDaoListImpl与StudentDaoArrayImpl有何区别?

    答:StudentDaoArrayImpl是用数组实现,而 StudenDaoListImpl是用ArrayList实现,所以这两者实现的结构不一样。

    5.什么是面向接口编程?面向接口编程的好处是什么?

    结合题目3与4中的Test.java的代码讨论分析。不要百度原封不动照搬!

    系统的各种功能是由许许多多的不同对象协作完成的,在系统分析和架构中,分清层次和依赖关系,每个层次不是直接向其上层提供服务(即不是直接实例化在上层中),而是通过定义一组接口,仅向上层暴露其接口功能,上层对于下层仅仅是接口依赖,而不依赖具体类。

    3. 码云上代码提交记录及PTA实验总结

    3.2实验总结

    使用Comparable或者Comparator接口前需要查询相关文档,了解使用方法

    并且对于继承有了更深刻的认识,掌握了关于三种不同修饰符的使用以及可达范围,但实际操作中,继承往往是不安全的,所以我更倾向于使用组合对象的设计。

     
     
     
  • 相关阅读:
    对JavaScript调用堆栈和setTimeout用法的深入研究
    Js中的window.parent ,window.top,window.self 代表的对象
    lhgselect 联动选择下拉菜单 v1.0.0 (20110613)
    lhgcore JavaScript Library v1.4.5 API (20110622)
    表单元素完美垂直居中
    判断 iframe 是否加载完成的完美方法
    lhgdialog 弹出窗口插件 v3.5.2 ( 20110704 )
    JS的事件冒泡和事件捕获
    程序设计原则
    python中入口函数的用法
  • 原文地址:https://www.cnblogs.com/gysbettrer/p/6617559.html
Copyright © 2011-2022 走看看