1静态变量
静态变量是属于类的,和对象没有关系
非静态变量是属于某个对象的,每个对象都有该数据的副本,而静态变量只有一个
2静态方法
用static修饰的方法为静态方法。
访问静态方法是通过(类名.变量名)
使用注意:
1、静态方法不能访问非静态变量
2、非静态方法可以访问静态变量
静态属性或者方法是在类加载的时候产生的
非静态的属性或者方法是在new的时候产生的。
静态变量比非静态变量先加载到类存中,非静态变量在new对象的时候才加载进到类存中。
3静态常量
Public static final int x=12345;
package com.java2006;
public class StaticTest {
//定义普通变量
int commobint=0;
//定义静态变量
static int statint=0;
//定义一个构造方法
StaticTest(int x){
this.commobint=x;
}
public static void main(String[] args) {
StaticTest s1=new StaticTest(1);
StaticTest s2=new StaticTest(2);
System.out.print("s1.commobint的值是:"+s1.commobint+"。");
System.out.print("s2.commobint的值是:"+s2.commobint);
s1.statint=88;
System.out.print("*******打印开始*********");
System.out.print("statint1的值是:"+s1.statint);
System.out.print("statint2的值是:"+s2.statint);
System.out.print("*******打印结束*********");
/*
s1.commobint的值是:1。
s2.commobint的值是:2*******
打印开始*********statint1的值是:88statint2的值是:88*******打印结束
*/
}
}
package com.java2006;
public class Demo {
static int x = 0;
static {
x = 100;
}
// 如果值为0说明static int x=0先执行
// 如果是100说明构造器先执行,static 方法变量是优先放到内存中的,程序運行結果是100
Demo() {
System.out.print(x);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Demo();
}
}