
2014-11-22
9 回答
1.public class HelloWorld{
String var ="i love math";
public static void main(String[] args){
HelloWorld a =new HelloWorld();
HelloWorld b =new HelloWorld();
a.var ="我喜欢数学";
System.out.println(a.var);
System.out.println(b.var);
}
}
输出:
我喜欢数学
i love math
2.
public class HelloWorld{
static String var ="i love math";
public static void main(String[] args){
HelloWorld a =new HelloWorld();
HelloWorld b =new HelloWorld();
a.var ="我喜欢数学";
System.out.println(a.var);
System.out.println(b.var);
}
}
输出:
我喜欢数学
我喜欢数学
public class HelloWorld {
static String className = "静态";//声明个静态变量
String cheng="成员";//声明个成员变量
public static void main(String[] args) {
HelloWorld n=new HelloWorld();//创建两个对象以便于比较
HelloWorld v=new HelloWorld();
//从下面这段代码可以看出只要一个对象把静态变量的值变了,那所有的对象的都跟着变,这就是所谓的全员共享
System.out.println(n.className); //输出结果:静态
System.out.println(v.className); //输出结果:静态
n.className="静态2";
System.out.println(n.className);//输出结果:静态2
System.out.println(v.className);//输出结果:静态2
//从下面这段代码可以看出对象n只能改变自己关于成员变量的值,改变不了别的对象关于成员变量的值
System.out.println(n.cheng);//输出结果:成员
System.out.println(v.cheng);//输出结果:成员
n.cheng="成员2";
System.out.println(n.cheng);//输出结果:成员2
System.out.println(v.cheng);//输出结果:成员
//原因是因为不同对象关于成员变量的值在内存中储存的位置不同
//但静态的大家都是在同一个地方储存,所以一个变,其他的都跟着变了
}
}
举报