以上的回答已经很清楚,是三个对象,顺序是s,s1,s2。且是放在方法区里的。但我看你的程序,认为你还是别的问题没有弄清楚。s是s1和s2对象中的元素。如下代码:
class Single
{
private int num;
public void setNum(int num)
{
this.num=num;
}
public int getNum()
{
return num;
}
Single(){}//构造函数,未进行任何处理
private static Single s =new Single();//静态成员
public void setS(int i)
{
s.setNum(i);
}
public int getS()
{
return s.getNum();
}
}
class SingleDemo
{
public static void main (String[]args)
{
Single s1 = new Single();
Single s2 = new Single();
s1.setNum(30);//调用setNum()函数,不是s1元素s中的值,是s1自己的元素,并不是静态变量
s1.setS(90);
System.out.println(s2.getNum());//s2中的值没有setNum过,所有是默认的0。不是静态变量
System.out.println(s2.getS());//s2中的s是静态变量,所以在这里可以输出他的结果
}
}
输出结果:
0
90
|