20165203《Java程序设计》第四周学习总结

教材学习内容总结

第5章 子类与继承
  1. 子类的继承性
  • 子类和父类在同一包中的继承性:子类继承父类中不是private的成员变量和方法做为本身的成员变量和方法
  • 子类和父类不在同一包中的继承性:子类只继承父类中的protectedpublic访问权限的成员变量和方法做为子类的成员变量和方法
    2.成员变量的隐藏
  • 子类对象以及子类本身定义的方法操做与父类同名的成员变量是指子类从新声明的这个成员变量。
  • 子类继承的方法所操做的成员变量必定是被子类继承或隐藏的成员变量
    3.方法的重写
  • 子类中定义的这个方法要和父类中被覆盖的方法类型一致
  • 重写的方法既能够操做继承的成员变量、调用继承的方法,也能够操做子类新声明的成员变量、调用新定义的其余方法,但没法操做被子类隐藏的成员变量和方法。
    4.super关键字:
  • 子类中想使用被子类隐藏的成员变量或方法
  • 子类在其构造方法中需使用super来调用父类的构造方法,并且super必须是子类构造方法中的头一条语句。
    5.final
  • final类不能被继承,不能有子类。
  • final方法不容许子类重写
  • final修饰成员变量或局部变量,他就是常量,且运行期间不容许发生变化。
    6.abstract
    -abstract类能够有abstract方法,也能够有非abstract方法,可是非abstract类只有非abstract方法
第6章 接口与实现

1.接口声明java

  • 接口经过使用关键字interface来声明
  • 格式:interface 接口的名字

2.接口体git

  • 接口体中包含常量定义和方法定义两部分。
  • 接口体中只进行方法的声明,不准提供方法的实现,
  • 因此,方法的定义没有方法体,且用分号“;”结尾。

3.接口回调数组

能够把实现某一接口的类建立的对象的引用赋给该接口声明的接口变量中,  
那么该接口变量就能够调用被类重写的接口方法。  
实际上,当接口变量调用被类重写的接口方法时,就是通知相应的对象调用这个方法。

4.abstract类与接口的比较学习

  • abstract类和接口均可以有abstract方法。
  • 接口中只能够有常量,不能有变量;而abstract类中便可以有常量也能够有变量。
  • abstract类中也能够有非abstract方法,接口不能够。.net

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

    Q1:当学习到子类和父类不在同一包中的继承性时,提到privatepublicprotect,他们之间的区别是什么?3d

A1:通过回顾第四章的内容,我总结了一下:
调试




修饰符 修饰变量和方法
private 若是A类中某个成员是private类变量和方法,那么另外一个类B中,不能经过类名A来操做这个变量和方法
public 若是A类中某个成员是public类变量和方法,那么另外一个类B中,能经过类名A来操做这个变量和方法
protect 若是在另一个B中用类A建立了一个对象后,若是A和B在同一个包中,那么该对象能够访问本身的protect变量和方法。

Q2:(未解决)对于如图所示代码,出现问题:
若是computer方法的接口的参数是float型,为何在主类上,实参是8和9是int型?
code

Q3:(未解决)对于如图所示代码,为何要这么写,而不是直接给对象的实体变量赋值?
对象

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

Q1:(未解决)在调试代码时,出现了如图所示情况:
blog

Q2:(已解决)编译运行时,出现了如图所示错误:

A2:我上网查询了,总结了一下出现该问题的缘由:
通常出现此问题的缘由为:

  • 花括号没有闭合
  • 缺乏了分号
    仔细检查了一下本身的程序,确实是在父类中少打了一个}

Q3:(已解决)此前在学习以前的内容时,一直存在一个问题,出现类和主类不在同一个包里时,在编译主类时,老是出现错误,找不到类,不知是什么缘由?
A3:在同窗的帮助下,找到了缘由,我以前并无在类的文件夹以外编译运行,在文件夹以外运行后,编译成功了。

Q4:(已解决)以前运行代码时,出现了printlnprintf敲错的问题,为此,我特地总结了一下区别:

A4:
printf主要是继承了C语言的printf的一些特性,能够进行格式化输出
print就是通常的标准输出,可是不换行
printlnprint基本没什么差异,就是最后会换行

代码托管

上周考试错题总结

Q1:

这道题尽管作对,可是我仍是想了解一下java demo 3的含义。

Q2:

A2:int强制转换字符表示字符的Unicode码,即字符在Unicode表中的位置。
Q3:

A3:漏选了A项,字符串数组的初始化后面必需要加{ }。详情可继续参照java字符串数组初始化和赋值

其余

随着学习内容的增多,咱们在以后的学习过程当中不免会出现对前面的知识出现模糊的状况,这并不可怕,其实,这反而是一件好事,帮助咱们了解本身对于前面知识点的漏洞,随后进行查漏补缺,会对整个知识体系的掌握有很大的好处。

另外,本身要学会对比总结学习,所谓对比总结就是对比一些很类似但又不一样的知识点,并总结他们的相同点和不一样点,这样知识会掌握的更加牢固。

还有,经过本周的考试,本身明显吃力了不少,应该本身尝试编代码,而不是一味地敲书上的代码,应该多实践,多动手,理论+实践。

学习进度条

~ 代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第三周 1716/1500 1/2 30/90

参考资料

print&println&printf

相关文章
相关标签/搜索