class A
{
int a;
static int b;
void setab(int i)
{
a=i;
b=i+1;
}
int getab()
{
return a;
}
static void setb(int i)
{
b+=i;
}
static int getb()
{
return b;
}
}
public class Exam3_7
{
public static void main(String args[])
{
A x=new A();
A y=new A();
x.setab(5);
y.setab(10);
System.out.println("x.a="+x.getab()+",y.a="+y.getab());
x.setb(-5);
y.setb(-10);
System.out.println("x.b="+x.getb()+",y.b="+y.getb());
}
}
就是上面这段程序的结果是:
x.a=5,y.a=10
x.b=-4,y.b=-4而我想不通为什么是这个结果呢,我认为应该是这个结果啊
x.a=5,y.a=10
x.b=6,y.b=-4
高手帮帮忙啊
{
int a;
static int b;
void setab(int i)
{
a=i;
b=i+1;
}
int getab()
{
return a;
}
static void setb(int i)
{
b+=i;
}
static int getb()
{
return b;
}
}
public class Exam3_7
{
public static void main(String args[])
{
A x=new A();
A y=new A();
x.setab(5);
y.setab(10);
System.out.println("x.a="+x.getab()+",y.a="+y.getab());
x.setb(-5);
y.setb(-10);
System.out.println("x.b="+x.getb()+",y.b="+y.getb());
}
}
就是上面这段程序的结果是:
x.a=5,y.a=10
x.b=-4,y.b=-4而我想不通为什么是这个结果呢,我认为应该是这个结果啊
x.a=5,y.a=10
x.b=6,y.b=-4
高手帮帮忙啊
static修饰的成员变量,即静态成员变量被个实例对象共享,而b是静态成员变量,所以对象x,y的b值是一样的
{
public static void main(String args[])
{
A x=new A();
A y=new A();
x.setab(5); //x.b=6
y.setab(10); //y.b=11,x.b=11
System.out.println("x.a="+x.getab()+",y.a="+y.getab());
x.setb(-5); //此时x.b=11+(-5)
y.setb(-10); //y.b=-4,同时由于b是static的,所以此时x.b发生了变化,x.b=-4
System.out.println("x.b="+x.getb()+",y.b="+y.getb());
}
} 仔细体会一下,你很容易就可以理解的
但是 y.b=-4,同时由于b是static的,所以此时x.b发生了变化,x.b=-4
内部是怎么具体实现的呀
我明白了 非常感谢!!!!