JavaLearning

Java面向对象——补充复习

Java面向对象学习的三条主线:(第4-6章)

匿名对象的使用

方法的形参的传递机制:值传递

JavaBean是什么

JavaBean是一种Java语言写成的可重用组件,是指符合如下标准的Java类:

构造器

import关键字的注意点

继承

体现:一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有的属性和方法。特别的,父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构。只是因为封装性的影响,使得子类不能直接调用父类的结构而已。

Java中关于继承性的规定:

重写 or 覆写

子类对象实例化的全过程

super调用类中属性和方法

super调用构造器

多态性 (也叫 向上转型)

== VS equal()

==:

equals()方法的使用:

JUnit的使用

static

static可以用来修饰:属性、方法、代码块、内部类。

使用static修饰属性:静态变量(或类变量)

静态变量:我们创建了类的多个对象,多个对象共享同一个静态变量。当通过某一个对象修改静态变量时,会导致其他对象调用此静态变量时,是修改过了的。

:star:static修饰属性的其他说明:

:star:static注意点:

abstract

abstract修饰类:抽象类

abstract不能用来修饰:属性、构造器等结构。

abstract不能用来修饰私有方法、静态方法、final的方法、final的类。(因为abstract的出现就是要别人来继承它的,然而final,私有这些都是不能被继承的)

内存分析图

image-20211012210648560

向下转型

Java的向下转型简单地理解就是对Java对象进行强制类型转换(也叫做造型)。

:star:为什么要有向下转型?

在Java多态性(向上转型)中,实际上就是将子类对象转成父类对象,此时可以访问父类的属性/方法,但是不能访问子类添加的属性/方法。为了实现上面的目标,就引入了向下转型。

向下转型:使用强制类型转换符。使用强转时,可能出现ClassCastException的异常。为了避免上面的问题,引入instanceof关键字的使用

使用情境:为了避免在向下转型时出现ClassCastException的异常,我们在向下转型之前,先进行instanceof的判断,一旦返回true,就进行向下转型。如果返回false,不进行向下转型。

if(p2 instanceof Woman){
			Woman w1 = (Woman)p2;
			w1.goShopping();
			System.out.println("******Woman******");
		}