学号 20175329 2018-2019-3《Java程序设计》第四周学习总结
教材学习内容总结
-
第五章
上周学习的第四章是体现了数据的封装,本章第五章主要是体现出对象的另外两个方面的重要内容:继承与多态。 -
子类与父类
继承是一种由已有的类创建新类的机制。利用继承,可以先定义一个共有属性的一般类,根据该一般类再定义具有特殊属性的子类,子类继承一般类的属性和行为,并根据需要增加它自己的新的属性和行为。 -
如果子类和父类在同一个包中,那么子类自然地继承了父类中不是
pirvate
的成员变量作为自己的成员变量,并且也自然地继承了父类中不是pirvate
的方法作为自己的方法,继承的成员变量或方法的访问权限保持不变。子类只继承父类中的protected
和public
访问权限的成员变量作为子类的成员变量。 -
instanceof
运算符是Java独有的双目运算符,其左面的操作元是对象,右面的操作元是类,当左面的操作元是右面的类或其子类所创建的对象时,instanceof运算的结果是true,否则是false。 -
声明的成员变量的名字和从父类继承来的成员变量的名字相同,在这种情况下,子类就会隐藏所继承的成员变量。
-
- 子类对象以及子类对象定义的方法操作与父类同名的成员变量是指子类重新声明的这个成员变量。
- 子类对象仍然可以调用从父类继承的方法操作被子类隐藏的成员变量,也就是说,子类继承的方法所操作的成员变量一定是被子类继承或隐藏的成员变量。
-
super关键字
子类如果隐藏了成员变量或者继承的方法,那么子类所创建的对象就不能调用被隐藏的方法,该方法的调用由关键字super负责。 -
使用super调用父类的构造方法
-
final关键字
final类不能被继承,可以修饰类、成员变量和方法中局部变量。如果用于修饰父类中的一个方法,那么这个方法不允许子类重写。用于修饰常量在运行期间不允许再发生变化。 -
对象上的上转型对象
- 上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法。
- 上转型对象可以访问子类继承或隐藏的成员变量,也可以调用子类的继承方法或子类重新的实例方法。上转型对象操作子类继承的方法或子类重新的实例方法,其作用等价于子类对象去调用这些方法。因此,如果子类重写了父类的某个实例方法后,当对象的上转型对象调用这个实例方法一定是调用了子类重写的实例方法。
-
abstract
- abstract类中可以有abstract方法。
- 抽象类可以抽象出重要的行为标准,该行为标准用抽象的方法来表示。级抽象类封装了子类必须要有的行为标准。
- 抽象类声明的对象可以成为其子类的对象的上转型对象,调用子类重写的方法,体现了子类根据抽象类里的行为标准给出具体的行为。
教材学习中的问题和解决过程
-
问题1:刚开始对于
extent
与super
的使用方法以及远离不是很理解 -
解决方案:
extent
的书写使用法方是子类与父类中的使用,对于这种使用如果画一个原理图会更好的理解,重新查看java学习的视频课后自己按照视频中划出来一个类似的图后类似于集合图一目了然。super
由创建对象引用子类方法的过程,由于子类建立过程中回隐藏成员变量以及方法通过super
方法可以调用被隐藏的变量。 -
问题2:abstract与之前在学习第四章类与对象是多个java文件由一个Example文件调用混淆
-
解决方案:重新找出第四章的代码然后手动敲出第五章的代码然后再比较后查看概念发现
abstract
是一个第四章的进一步延申,第四章中只是单纯的题到调用但是却没有说有哪些函数可以调用,但是使用abstrct
在public前声明可以知道有哪些些类可以被调用创建对象,让一个程序更加完善也更加体现java程序的分工明确可以细化工程。
代码托管
上周考试错题总结
上周测试相比以前有一定的进步,至少能够按时完成老师布置的任务,这与自己课下做了更多的功夫有一定的关联,希望能够再接再厉,但是在布置平方数倒叙排序的时候自己的程序还是不够完善,不够简化,后来查资料发现应该可以调用import java.util.*
的方式来直接进行平方排数。
心得体会
学习java也有一个月了这一个月学习了很多很新的概念对于编程有了更深层次的了解,作为高级语言相比C语言有很多的不同之处,但正是这些的不同之处可以让我们更加方便地通过机械语言编译一些程序去满足多种化的需求,我也希望自己能在java学习中下更大的决心与精力,让自己变得越来越好跟着娄老师学到更多的东西!
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000 | 15 | 400 | 目标能够运用自行开发Android |
第一周 | 10/10 | 2/2 | 10/10 | 初步熟悉JAVA以及语法区分与C的不同之处 |
第二周 | 100/100 | 3/3 | 35/35 | 语法知识 |
第三周 | 300/300 | 4/4 | 60/60 | 了解对象 |
第四周 | 800/800 | 5/5 | 80/80 | 学习到子类与父类 |