static 用法
声明静态成员变量(也称类变量),从属于类,是该类的公用变量,生命周期与类相同,**注意与普通成员变量区分 ** 普通成员变量从属于对象,生命周期与对象相同。
注意!!!
static 方法不可访问非static 成员,非static成员从属于对象,在堆内存中无法找到。
个人理解:static 变量声明初始化以后,创建的对象全都是被初始化过的,相当于这个类特有的“印记”
撸代码:
/**
* @author DREAM_yao
*static关键字的用法
*/
/*static:声明静态成员变量和方法,从属于类
*
* */
class Score{
String name;/*从属于对象*/
static String id="DREAM_yao";/*从属于类*/
static int num;
public void printname() {/*普通方法可以调用静态方法*/
System.out.println("普通方法:"+id);
}
public static void printId(){/*静态方法不能调用普通方法,在内存中找不到*/
System.out.println("静态方法:"+id);
}
}
public class TestConstructor {
public static void main(String[] args) {
Score s2 = new Score();
s2.printname();
s2.printId();
s2.id="快乐撸代码";
System.out.println(s2.num);
s2.printId();
}
}
静态初始化块:
用于类的初始化
/**
* @author DREAM_yao
*静态初始化块
*/
/*static:声明静态成员变量和方法,从属于类
*
* */
class Score{
String name;/*从属于对象*/
static String id;/*从属于类*/
static int num;
static {/*static 初始化块*/
System.out.println("执行类的初始化:");
id="DREAM_yao";
num=666;
System.out.println(num+"
"+id);
}
}
public class TestConstructor {
public static void main(String[] args) {
Score s2 = new Score();
}
}