`
无量
  • 浏览: 1133768 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JAVA基础----java中final和static关键字的理解

阅读更多
1、final最终的,由final修饰的变量,只能被初始化一次,可以在声明时初始化,也可以之后初始化,但只能初始化一次,所以由final修饰的变量是常量,不能再变了,注意如果类成员变量用final修饰,一种是声明时初始化,一种是在构造方法中初始化
注意:常量一般都用大写来表示如:PI,IP,SOCKET_NAME,MAX_SPEED

例如:
public class Test{
	public static void main(String []args) {
		A a = new A();
		//a.a = 2;//这个报错,只能初始化一次
		A b = new A();
		//b.a = 2;//这个也报错
	}
}	
	
class A {
	public final int a = 2;
}



2、static静态的,类级拥有的,由static修饰的成员变量(或者叫属性),在内存中只有一份,这个类所产生的所有实例,都公用这个一份,所以说一般,类的所有实例共同维护的属性,可以用static修饰,类名.static修饰的变量名,就可以来操作这个属性,而且内存中只维护一份,高效,省空间
例子:
public class Test{
	public static void main(String []args) {
		Stu s1 = new Stu();
		s1.s = 1;System.out.println(s1.s); //输出1
		s1.s = 2;System.out.println(s1.s); //输出2
		Stu s2 = new Stu();
		s2.s = 3;
		System.out.println(s2.s); //输出3
		System.out.println(s1.s); //输出3  因为内存中所有的实例共同维护这一份,变量
		System.out.println(Stu.s); //输出3  一般来说都直接通过类名来引用类中的静态变量
	}
}	
	
class Stu {
	public static int s;
}


其他例子:
public class Test {
	public static void main(String[] args) {
		final int num = 3;
		num = 4;  //final修饰的是常量,最终变量,不能再赋值,必须在初始化的同时就赋值
	}
}


3、静态常量:
用static final同时修饰的变量,是静态常量,同时有final和static的特性,一般用来声明系统中只维护一份(static修饰)的不变的量(final修饰)

例子:
public interface Dict {
	public static final int YES = 1;
}

用法:
直接通过---类名.变量名,来用
如:Dict.YES
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics