首页
登录 | 注册

第七周作业

学号 2016-2017-2 《程序设计与数据结构》第7周学习总结

教材学习内容总结

  • 1包与权限。将代码进行分类进行打包,在打包之后类在编译及运行是要在前面加上包名;对于权限我已经有所了解,public,protect,defult,private,这四种的权限,其中defult是默认权限,protect主要使用与父类与子类之间;private是用于声明私有权限的;
  • 2接口,接口是Java中最重要的一个知识点,也是面向对象的一个主要的知识点;接口与类由点相像,也有不同一个接口可以继承多个父类接口,就是补足了类只支持单继承的不足
  • 3实现多态的方式,包括用继承实现多态和用接口实现多态。

    教材学习中的问题和解决过程

  • 问题1:对于四种权限的的区分。
  • 问题1解决方案:
  1. private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的属性以及方法只能被该类的对象 访问,其子类不能访问,更不能允许跨包访问。
  2. default:即不加任何访问修饰符,通常称为“默认访问权限“或者“包访问权限”。该模式下,只允许在同一个包中进行访问。
  3. protected: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护访问权限”。被其修饰的属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
  4. public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包访问
  • 问题2:接口的定义与实现接口,虽然听了视频来是不大明白;
  • 问题2解决方案:
    Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为。(参考

代码调试中的问题和解决过程

  • 问题1在IDEA中确缺少了Junit包
  • 问题1解决方案:先用everthing软件查找出Junit的位置,后在IDEA中将Junit包加入就会有Junit。在IDEA中file、Protect Settings中点击加号将刚刚复制的juni的位置加入。

  • 问题2:有关TDD开发的问题,有与时间安排不好所以学习的不够深入。
  • 问题2解决方案:这周下去抽时间在学习。这里也有一些自己已经找好的素材。
    参考1
    参考2

    代码托管

    第七周作业

    第七周作业

(statistics.sh脚本的运行结果截图)

上周考试错题总结

  • 第五周

-下面哪条命令可以把 f1.txt 复制为 f2.txt ?
A .cp f1.txt f2.txt
B .copy f1.txt f2.txt
C .cat f1.txt > f2.txt
D .cp f1.txt | f2.txt
E .copy f1.txt | f2.txt
copy是Windows下的命令。cat f1.txt > f2.txt 通过输出重定向实现了复制。

  • Which of the following method headers is most likely a header for a mutator method?(以下哪个方法头部最有可能是设值方法的头部?)
    A .public int getAge()
    B .public double computeSalary()
    C .public Person()
    D .public void setAge(int newAge)
    E .none of these are headers for a mutator method(以上均不是设值方法的头部)
    应用程序的方法,改变一个实例变量的值,通常称为“二传手”。 因此,选项D是正确答案。 选择是一个访问器方法的头一个例子,通常被称为“吸气”。 选择C是一个构造函数,和选择B是一个类的方法。
    A _______________ variable is shared among all instances of a class(_____变量由类的所有实例共享).
    A .static
    B .final
    C .public
    D .private
    E .none of the above(以上都不是)
    静态变量是一个类的所有实例中共享。 final变量是一个常量,一个公共变量是从外部访问的对象和一个私有变量是一种不能被外部访问的对象。
    A(n) ________________ is a step-by-step process for solving a problem(___是为了解决问题而进行的一步步的处理过程).
    A .UML diagram(UML类图)
    B .aggregate object(对象聚合)
    C .class(类)
    D .algorithm(算法)
    E .none of the above(以上均不是)
    一个算法是一种解决问题的一步一步的解决方案。 UML图是一种直观表示类和对象交互。 集合对象是一个对象,组成,部分其他对象。 一类可以被认为是一组对象的蓝图。

  • class Some{
    void doService(){
    System.out.println("some service");
    }
    }
    class Other extends Some{
    @Override
    void doService(){
    System.out.println("others srrvice");
    }
    }
    public class Main{
    public static void main(String[] args){
    Other other = new Other();
    other.doService();
    }
    }

  • 以下描述正确的是
    A .编译失败
    B .显示some service
    C .显示other service
    D .先显示some service后显示other service

  • 如果有以下程序片段:
    class Some{
    String ToString(){
    return "Some instance";
    }
    }
    public class Main{
    public static void main(String[] args){
    Some some = new Some();
    System.out.println(some);
    }
    }
    以下描述正确的是
    A .显示Some Instance
    B .显示Some@XXXX,XXXX为十六进制的数字
    C .发生ClassCastException
    D .编译失败

  • 第六周

  • vi中哪条命令是不保存强制退出?
    A .:wq
    B .:wq!
    C .:q!
    D .:q
    在vi中w表示保存,q表示退出,而!表示强制执行。所以q!表示不保存直接退出。

下面哪些Linux 命令可以ASCII码和16进制单字节方法输出Hello.java的内容?
A .od -b -tx1 Hello.java
B .od -tcx1 Hello.java
C .od -tc -tx1 Hello.java
D .od -tbx1 Hello.java
-b表示八进制输出。

-When a variable is declared in a subclass has the same name as a variable declared in a superclass, it is called a _______________ variable(当子类声明的变量和超类声明的变量相同时,该变量称为____变量).
A .final
B .shadow(隐藏)
C .static
D .dead(死亡)
E .this is not allowed in Java(Java禁止变量名相同)this is not allowed in Java(在Java中这是不允许的)

A class declared as final _________________________________ (声明为final的类_____).
A .cannot be changed(不能更改).
B .cannot have subclasses(不能拥有子类).
C .cannot have superclasses(不能拥有超类).
D .has several abstract methods(具有几个抽象方法).
E .cannot be used in a program(不能在程序中调用).
final是用来限制继承来保证封装性的修饰符所以final修饰的类就无法被继承所以就没有子类。

  • Methods and variables declared as private in a parent class cannot be accessed in a child class(在父类中声明为private的方法和变量不能被子类访问).
    A .true
    B .false
    被声明为private的变量就只能在本类中使用,其他类无法访问,子父类中如果要访问就要声明为protect。

  • Once a method is overridden in a subclass, the original version can never be referenced from within the subclass(一旦方法被子类重写,原有的方法不能再在子类中引用).
    A .true
    B .false
    再被重写后的方法,如果要访问原有的方法就可以使用supper来引用。
    -如果有以下的程序代码:
    Int x=100;
    Int y=100;
    Integer wx=x;
    Integer wy=y;
    System.out.println(x==y);
    System.out.println(wx==wy);
  • 在JDK5以上的环境编译与执行,则显示的结果是
    A .
    true、true
    B .true、false
    C .false、true
    D .编译失败
    在我进行验证之后输出的就是两个ture。
    第七周作业

结对及互评

点评过的同学博客和代码

  • 本周结对学习情况
    • 20162312
    • 结对照片
    • 结对学习内容
      • 包及其权限
      • 多态的实现
      • 实验
  • 上周博客互评情况
    • 20162322
    • 20162311
    • 20162321
    • 20162308
    • 20162315

其他(感悟、思考等,可选)

  • 在前几周到这周我们一直在学习有关类的相关的值是点最主要的就是抽象,在视频中老师提及到最多的就是复用性,不论是继承还是多态还是接口,抽象类都是为了提高代码的复用性,可见在设计的过程中我们要尽量的去抽象出一些共有的部分,来使代码可以尽可能的减少重复;

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 77/77 1/1 14/14
第二周 331/408 1/2 16/30
第三周 315/723 1/3 15/45
第四周 848/1546 2/5 20/65
第五周 959/2505 1/6 10/75
第六周 720/3225 1/7 15/90
第七周 428/3653 1/ 8 15/105

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难,软件工程 估计方法

  • 计划学习时间:15小时

  • 实际学习时间:15小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表)

参考资料



2020 cecdns.com webmaster#cecdns.com
11 q. 0.074 s.
京ICP备10005923号