今天我们来说说JAVA中的修饰关键字。
常用的有:
1.final 关键字
修饰成员变量:
a. 必须初始化值。
b. 被fianl修饰的成员变量赋值,有两种方式:1、直接赋值 2、全部在构造方法中赋初值。
c. 如果修饰的成员变量是基本类型(int,long,double.....),则表示这个变量的值不能改变。
d. 如果修饰的成员变量是一个引用类型(String,List,Map....),则是说这个引用的地址的值不能修改
(就是说只能new 一 个对象地址),但是这个引用所指向的对象里面的内容还是可以改变的。
修饰方法:
被final修饰的方法不能被重写。
注意:
a. 一个类的private方法会隐式的被指定为final方法。
b. 如果父类中有final修饰的方法,那么子类不能去重写。
修饰类:
修饰类当用final去修饰一个类的时候,表示这个类不能被继承。
注意:
a. 被final修饰的类,final 类中的成员变量可以根据自己的实际需要设计为 final 。
b. final类中的成员方法都会被隐式的指定为final方法
2. static 关键字
static可以修饰成员变量,成员方法,还有类,也可以单独的使用static{}形成 静态代码块。不管哪种使用,其原理都是让其修饰的变量,方法,类,代码块在程序类加载的时候就跟随加载,保存在内存中,从而在使用的时候可以直接获取,不需要再通过new这个关键字创建实例对象。被static修饰的变量、被static修饰的方法统一属于类的静态资源,是类实例之间共享的,换言之,一处变、处处变。
static关键字最基本的用法是:
1、被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来。
2、被static修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要new出一个类来。
加载顺序:当定义的一个类中既有静态代码块,又有成员方法,你使用new关键字创建这个类的实例对象,会先找这个类的父类,看这个类父类中存在静态的资源否,如果有就先加载父类的静态资源,再加载子类的静态资源,最后才到父类的构造方法,子类的构造方法。总结起来类的加载顺序是:父类静态代码块 --》子类静态代码块 --》父类构造方法 --》子类构造方法
网友评论