面向对象的一些常用的关键字
我们来讲讲instanceof、this、super、static、final的重要使用原则。
一、关键字instanceof
1.使用格式:对象 instanceof 引用类型 , 返回值类型为Boolean
2.当左边的对象是右边的类或子类创建的对象时,返回结果为true,否则为false
3.该关键字可以在类型强转之前进行判断,当返回结果为true时,表示可以将这个对象强转为该类型对象;
当返回结果为false时,若要进行强转,就会出现类型转换异常(ClassCastException)
例如:
public class Test2 {
public static void main(String[] args) {
Animal a1 = new Animal();
Cat cat1 = new Cat();
if (cat1 instanceof Animal) {// 猫是动物
a1 = (Animal) cat1;
System.out.println("可以将猫强转为动物");
} else
System.out.println("不可以将猫强转为动物");
Animal a2 = new Animal();
Cat cat2 = new Cat();
if (a2 instanceof Cat) {// 动物不一定是猫
cat2 = (Cat) a2;
System.out.println("可以将动物强转为猫");
} else
System.out.println("不可以将动物强转为猫");
}
}
class Animal {
}
class Cat extends Animal {
}
运行结果为:
二、关键字this
1.关键字this表示当前对象
2.通过this访问本类的成员的格式如下:
(1)调用成员变量---- this.<变量名>
(2)调用成员方法---- this.<方法名[参数列表]>
3.当该类中有多个构造方法,并且构造方法需要调用其它构造方法时,可以通过this来实现,格式如下:
----------this([参数列表])
三、关键字super
1.super表示某个类的父类的引用
2.super有两种通用形式:
(1)可以访问被子类隐藏的父类成员
-----super.<变量名>
-----super.<方法名[参数列表]>
(2)可以调用父类构造方法
-------super([参数列表])
四、关键字static
1.static不能用来修饰类,只是修饰类成员,使它在该类所有实例之间共享(只有一份)
2.调用格式:
----------类名.静态变量
----------类名.静态方法
3.静态方法的两条重要原则
(1)静态方法只能访问所属类的静态变量和方法
(2)静态方法中不能出现this和super关键字(因为它不依赖于对象)
五、关键字final
.关键字final可以用来修饰变量、方法、类
1.修饰变量时,如果是基本数据类型,该变量就成了常量,值无法改变(只能赋一次值)
–如果是引用数据类型,该变量所指向的对象不能改变
2.修饰方法时,该方法不能被其所在类的子类覆盖(重写)
3.修饰类时,该类不能被继承
如果你还有不懂的,欢迎在下方评论!