JAVA基础-java中final跟static关键字的理解
JAVA基础----java中final和static关键字的理解
1、final最终的,由final修饰的变量,只能被初始化一次,而且必须在声明时同时初始化,所以由final修饰的变量是常量,不能再变了,
注意:常量一般都用大写来表示如:PI,IP,SOCKET_NAME,MAX_SPEED
例如:
2、static静态的,类级拥有的,由static修饰的成员变量(或者叫属性),在内存中只有一份,这个类所产生的所有实例,都公用这个一份,所以说一般,类的所有实例共同维护的属性,可以用static修饰,类名.static修饰的变量名,就可以来操作这个属性,而且内存中只维护一份,高效,省空间
例子:
其他例子:
3、静态常量:
用static final同时修饰的变量,是静态常量,同时有final和static的特性,一般用来声明系统中只维护一份(static修饰)的不变的量(final修饰)
例子:
用法:
直接通过---类名.变量名,来用
如:Dict.YES
1、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