2019-10-28-22:40:14
目录
1.Instanceof关键字
2.Final关键字
2.1Final关键字修饰类
2.2Final关键字修饰成员方法
2.3Final关键字修饰局部变量
2.4Final关键字修饰成员变量
3.权限修饰符
Instanceof关键字
作用:判断一个父类引用的对象是什么子类
格式:
对象名 instanceof 类名称
1 package demosummary.instanceoftest; 2 3 public class Test { 4 public static void main(String[] args) { 5 //创建一个Dog对象 6 Animal animal = new Dog(); 7 //如果希望调用子类特有方法,需要向下转型 8 //判断一下父类引用animal本来是不是Dog 9 if (animal instanceof Dog){ 10 animal.setName("来福"); 11 Dog dog = (Dog)animal; 12 dog.skill(); 13 } 14 15 } 16 }
Final关键字
意义:final关键字代表最终,不可改变的
常见四种用法:
1.可以用来修饰一个类
2.可以用来修饰一个方法,
3.还可以用来修饰一个局部变量
4.还可以用来修饰一个成员变量
Final关键字修饰类
格式:
public final class 类名称{
语句体;
}
含义:当前这个类不能有任何子类,而且成员方法都无法进行覆盖重写(因为没有子类)
1 public final c1ass MyClass /*extends object*/ { 2 public void method() { 3 System.out.print1n( "方法执行!"); 4 } 5 }
Final关键字修饰成员方法
当final关键宇用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写。
格式:
修饰符 final 返回值类型 方法名称(参数列表) {
// 方法体
}
注意事项:1、对于类、方法来说,abstract关键字和final关键字不能同时使用,因为矛盾。
public abstract class Fu { public final void method() { System.out.printIn("父类方法执行!"); } public abstract /*final*/ void methodAbs() ; }
Final关键字修饰局部变量
作用:一旦使用final来修饰局部变量,那么这个变量就不能进行修改(一次赋值,终生不变)
注意事项:
1.对于基本类型来说,不可变说的是变量当中的数据不可改变
2.对于引用类型来说,不可变说的是变量当中的地址值不可改变
Final关键字修饰成员变量
作用:对于成员变量来说,如果使用final关键字修饰,那么这个变量也照样是不可变。
1.由于成员变量具有默认值,所以用了final之后必须手动赋值,不会再给默认值了。
2.对于final的成员变量,要么使用直接赋值,要么通过构造方法赋值。二者选其一。
3.必须保证类当中所有重载的构造方法,都最终会对final的成员变量进行赋值。
权限修饰符
Java中有四种权限修饰符:
public > protected > ( default) > private
同一个类(我自己) YES YES YES YES
同一个包(我邻居) YES YES YES NO
不同包子类(我儿子) YES YES NO NO
不同包非子类(陌生人 YES NO NO NO
注意事项: (default)并不是关键字“defoult",而是根本不写。