java中final关键字详解

1: final关键字可以干什么?有什么特点?
final关键字可以修饰变量,方法,类
特点:
(1) final可以修饰类,该类不能被继承。一般来说都是将工具类设计成为final类。在JDK中,被设计为final类的有String ,System.
(2)final可以修饰方法,该方法不能被重写。一个类的private方法会被隐式的指定为final方法。

  • 比如:Object类中getClass();

(3) final可以修饰变量,该变量不能被重新赋值。因为这个变量其实是常量
static final 用来修饰属性:全局常量

2 final修饰局部变量
如果是修饰基本类型,基本类型的值不能发生改变。
如果修饰引用类型:引用类型的地址值不能发生改变,但是,该对象的堆内存的值是可以改变的。

class TestFinal
{
	public static void main(String [] args){
		int x=10;
		x=100;
		System.out.println(x);
		final int y=10;
		y=100;
		System.out.println(y);
		System.out.println("--------------");
	}
}

报错:错误: 无法为最终变量y分配值

class A
{
	int age=100;
}
class TestFinal
{
	public static void main(String [] args){
		final A ss = new A();
		ss = new A();
	}
}

错误: 无法为最终变量ss分配值

class A
{
	int age=100;
}

class TestFinal
{
	public static void main(String [] args){
		
		final A a = new A();
		a.age=10;
		System.out.println(a.age);
		a.age=100;
		System.out.println(a.age);
		
	}
}

运行结果:
10
100
可以见的final修饰的引用类型的值可以发生改变,但是不能重新指向对象

你可能感兴趣的:(java基础知识,java,final)