static用法由很多很好的文章,下面代码是关于static一些用法以及错误的原因,可以思考一下输出结果会是什么
class Name{
static String name;
String nickname;
Name(int num){
name="jason";
nickname="pig";
System.out.println(num);
}
}
class Student{
static Name myname=new Name(1);
int num;
String classroom;
Student(){
classroom="senior 1,class 2";
}
static Name myname2=new Name(2);
}
public class static_test {
int a;
static int c;
static Student he;
public static void main(String[] args) {
// TODO Auto-generated method stub
//System.out.println(a);错误
//System.out.println(Name.nickname);
//没有对象,a,nickname并不存在
System.out.println(Name.name);
//正确,静态变量被所有的对象所共享,在内存中只有一个副本。与上两句比较。
System.out.println(c);
System.out.println(he.num);
Student me=new Student();
//这一句很有趣,猜想若没有student me初始化myname静态对象是否会受到影响
//猜想Name(1),Name(2)以及Student构造器执行顺序
}
public void test() {
//static int b; 错误
//原因:static不能修饰局部变量
}
}