2016-06-29
1 静态变量
静态变量是属于类的,和对象没有关系。
非静态变量是属于某个对象的,每个对象都有该数据的副本,而静态变量只有一个。
package com.java1995; public class StaticTest { int commonint=0;//普通变量 static int staticint=0;//静态变量 StaticTest(int x){ this.commonint=x; } public static void main(String[] args) { StaticTest s1=new StaticTest(1); StaticTest s2=new StaticTest(2); System.out.println("s1.commint="+s1.commonint); System.out.println("s2.commint="+s2.commonint); s1.staticint=1; System.out.println("s1为staticint赋值为1"); System.out.println("s1.staticint="+s1.staticint); System.out.println("s2.staticint="+s2.staticint); System.out.println("s2为staticint赋值为15"); s2.staticint=15; System.out.println("s1.staticint="+s1.staticint); System.out.println("s2.staticint="+s2.staticint); } }
package com.java1995; public class Student { int id=0; static int num=0;//静态变量 Student(int id){ this.id=id; num++; } public static void main(String[] args) { Student s1=new Student(100); Student s2=new Student(101); Student s3=new Student(102); Student s4=new Student(103); System.out.println("s1的学号 :"+s1.id); System.out.println("s2的学号 :"+s2.id); System.out.println("s3的学号 :"+s3.id); System.out.println("s4的学号 :"+s4.id); System.out.println("学生的数目为 :"+Student.num); } }
2 静态方法
用static 修饰的方法称为静态方法。
访问静态方法是通过(类名.方法名)
1、静态方法不能访问非静态变量
2、非晶态方法可以访问静态变量
静态属性或方法是在类加载的时候产生的
非静态属性或方法是在new的时候产生的
package com.java1995; //静态方法 public class StaticMethod { public static void main(String[] args) { MyMethod.printString("Hello World"); MyMethod.printInt(101); } } class MyMethod{ static void printString(String str){ System.out.println(str); } static void printInt(int i){ System.out.println(i); } }
3 静态常量
public static final int x=123;
package com.java1995; public class Demo { static int x=0; static{ x=100; //静态常量 } Demo(){ System.out.println(x); } public static void main(String[] args) { new Demo(); } }
【参考资料】