接着上一部分继续:上一部分学了类和对象的一些基本概念、以及对象的特性之一:封装性。
一、面向对象
this方法补充:
在前面已经学了this方法,关于怎么使用,已经很清楚了,但还是需要补充一些知识点:
应用举例:
理解项目的空间内存变化,对写代码有质的帮助。这点非常重要。比如:下面这个Account类、Customer类、Bank类。
面向对象的继承性:
对继承性的理解:
继承性有两种角度:
自上而下:类A、类B,类B功能和类A相似,这个时候,可以考虑类B继承类A。
自下而上:定义类B、C、D。发现B、C、D有共同的属性和方法。可以考虑将它们封装到类A中,并让BCD继承类A。
父类:superclass;子类:subclass。
介绍断点的作用:
断点可以帮助我们理解,栈和堆的空间变化。一般设置在 创建对象的时候。
这样点击运行,断点就会出现这个栈和堆的空间。类似下面:这里我们设置的断点是:Student s1=new Student();
区分重载和重写(再次):
super()关键字的补充:
使用场景:
super调用构造器:
其实super关键字,解决了一个,我们在测试类调用创建子类的对象时,它会把父类的属性一起创建在堆里面的问题。原因就是,默认使用了super()方法。例如下图解释:
碰到的问题:
在存在有参数的构造器时,使用继承的子类必须使用super带参数的关键词?
笔试题(一个挺棒的例子):
判断非继承方法里面this。和继承方法里面默认使用super()方法的例子。
在看看这个面向对象的例子:
这个例子面向不同的对象。分别有不同的属性。那么它的结果是什么,这个例子比较绕。
一点思考:虽然是旁听生,但这里的题目就不做了吗?不应该的,也是需要做的。这里的作业刚好可以给自己查缺补漏,不要觉得再做这里的作业会让自己的时间变得更短就不做了。我说的变化,就是争取一切能够帮助自己进步更快、更有用的方式去学习。所以,当然要争取变化。!