`
have_life
  • 浏览: 147088 次
社区版块
存档分类
最新评论

java 中的static 和final连用

    博客分类:
  • java
阅读更多
下面的代码正确
public class Test {
	public final String a;
	
	public Test(){
		a = "xxx";
	}
	public static void main(String[] args) {
		Test t = new Test();
		System.out.println(t.a);
	}
}


下面的代码错误(由于是静态的,又是final的,所以要求你在最先声明的那句话就要给它赋值,不允许你在构造函数中赋值)
public class Test {
	public static final String a;
	
	public Test(){
		a = "xxx";
	}
	public static void main(String[] args) {
		Test t = new Test();
		System.out.println(t.a);
	}
}



下面的代码错误(这个就是最基本的final含义,你赋值过了,后面就不允许你赋其它值了)
public class Test {
	public final String a;
	
	public Test(){
		a = "xxx";
	}
	public static void main(String[] args) {
		Test t = new Test();
		System.out.println(t.a);
		t.a = "sxx"
	}
}



下面的代码错误(final变量,你要么在声明的时候初始化,要么就在构造函数中初始化,出了这两个地方,再去赋值也要报错。)(从这点你也可以知道,如果是static final连用,那么就只有一个地方初始化了,只有声明的地方了,连构造函数中初始化的机会也没有了。)
public class Test {
	public final String a;
	
	public Test(){
	}
	public static void main(String[] args) {
		Test t = new Test();
		t.a = "xxx";
		System.out.println(t.a);
	}
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics