关键字final 和static
Posted SSimeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关键字final 和static相关的知识,希望对你有一定的参考价值。
关键字:final 和 static
1. final
final可以用来修饰类、方法、变量、基本类型以及引用类型。具体功能如下:
1.1 用final修饰类
用final修饰类,则表示该类不能被其它类继承。
//用final修饰的类不可以被继承
public final class Tes1 {
// 用final修饰的变量必须赋值,并且不能再修改
private final int i = 1;
}
1.2 用final修饰方法
用final修饰方法,则表示该方法不能被其子类重写。若父类是public,则子类可以继承到该方法,但是不能重写;若父类是private,则子类继承不到该方法。所以final不能修饰构造方法。
public final void getId() {
//用final修饰的方法不可以被重写
}
1.3 用final修饰变量
用final修饰变量,则表示该变量在定义的时候必须赋值,况且被赋值之后,变量的值就不能再修改,否则会报错。
//用final修饰的变量必须赋值,并且不能再修改
private final int i=1;
1.4 用final修饰基本类型
用final修饰基本类型,则表示该类型的变量在定义的时候必须初始化,况且被初始化之后,变量的值就不能再修改,否则会报错。
1.5 用final修饰引用类型
引用类型可以理解为一个引用变量指向一个对象。因此用final修饰引用类型变量时,只可以指向一个对象,不能再指向其它,但是对象的内容是可以改变的。并且不可以通过【引用型变量名=null】的方式来解除绑定。
public class SandFina {
public static void main(String[] args) {
final A a =new B();
a=new B();
a=null;
}
}
结果:
2. static
static 可以用来修饰成员变量、方法,也可以形成代码块。
2.1 用static修饰成员变量
(1)用static 修饰的变量,也叫静态变量,静态变量可以被所有对象共享。
(2)static成员变量的是按照定义的顺序进行初始化,而且static不可以修饰局部变量。
(3)所以一般在需要实现以下两个功能时使用静态变量:
① 在对象之间共享值时;②方便访问变量时
2.2 用staticl修饰方法
用static 修饰的方法也叫类方法。静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法,只能访问所属类的静态成员变量和成员方法。
2.3 static代码块
static代码块是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。
以上是关于关键字final 和static的主要内容,如果未能解决你的问题,请参考以下文章
java多线程04----------final和static