2019-2020-1 《数据结构与面向对象程序设计》第5周学习总结

正文

20182311 2019-2020-1 《数据结构与面向对象程序设计》第5周学习总结

教材学习内容总结

教材第八章

1.继承(extends)是从已有类中派生一个子类。通过继承,新类自动包含父类中的变量及方法,子类可添加或修改父类方法。子类的实例不依赖父类的实例
2.protected修饰符:保护可见性的变量或方法可以由同一包内任何类来访问。保护可见性提供了继承之间最恰当的封装机制。
3.super引用:可以引用父类的变量和其他方法及构造方法。子类不能继承父类的构造方法,一般子类的构造方法自动调用super()继承不带参数的父类构造方法,带参数的构造方法要用super来继承。
4.多重继承:一个类只能有一个子类,java中不允许一个子类有多个父类,但允许接口可以有多个接口。
5.object类:每个类都直接或间接的派生于object类,自动继承toString和equals方法。
6.抽象类:抽象类不能实例化,可以不含有抽象方法。(abstract)

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

  • 问题1:方法重写和方法重载的区别?

  • 问题1解决方案:个人理解:方法重写是两个类之间方法的关系,子类对所继承的父类的方法进行修改;方法重载是在同一个类之间方法的关系,一个类中含有多个方法名相同单参数不同的方法。

  • 问题2:怎么统计代码行数?

  • 问题2解决方案:在IDEA里找到statistic插件,下载后每次refresh就可以查看了。

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

  • 问题1:出现Exception in thread "main" java.lang.NullPointerException at test.AdjMGraph.InitateAaj(AdjMGraph.jav

  • 问题1解决方案:出错原因原来是定义数组后没有对每个数组对象进行实例化,数组中的每个元素都是一个对象啊,既然是对象我们没有对他进行分配空间

  • 问题2:出现inputmismatchexception

  • 问题2解决方案:出错原因是控制台输入与设置不匹配。修改变量设置。

代码托管

上周考试错题总结

  • 错题1:Which of the following is true regarding Java classes?
    A .All classes must have 1 parent but may have any number of children (derived or extended) classes
    B .All classes must have 1 child (derived or extended) class but may have any number of parent classes
    C .All classes must have 1 parent class and may have a single child (derived or extended) class
    D .All classes can have any number (0 or more) of parent classes and any number of children (derived or extended) classes
    E .All classes can have either 0 or 1 parent class and any number of children (derived or extended) classes
  • 反思:正确答案:A,我的选项:E。Java支持继承,但不支持多重继承,因此Java类可以有任意数量的子类,但只能有一个父类。此外,由于所有Java类都直接或间接从对象类继承,所以所有Java类都只有一个父类。
  • 错题2:Using the reserved word, super, one can
    A .access a parent class'constructor(s)
    B .access a parent class'methods and instance data
    C .access a child class'constructor(s)
    D .access a child class'methods and instance data
    E .none of the above
  • 反思:正确答案:E,我的选项:B。super关键字可以访问父类的构造方法、实例数据和方法,所以应该是A+B,选择E。
  • 错题3:Interface classes cannot be extended but classes that implement interfaces can be extended.
    A .true
    B .false
  • 反思:正确答案:B。任何类都可以扩展,无论它是接口、实现接口还是两者都不是。唯一的例外是类被显式地修改为“final”,在这种情况下它不能被扩展。书上只说了接口被其他类实现(implements),但实际上接口还可以被其他接口继承(ectends)

结对及互评

点评过的同学博客和代码

感悟

写代码前要先有一个清晰的思路,直接上手写容易删删改改还达不到目的。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 10000行 30篇 400小时
第一周 246/246 2/2 30/30 初步掌握linux命令、java小程序和jdb调试
第二周 73/319 3/3 30/60
第三周 906/1225 3/6 20/80
第四周 748/1973 2/8 20/100
第五周 849/2822 2/10 20/120

参考资料

原文地址:https://www.cnblogs.com/lengchong/p/11632790.html