关于Java中static用法的疑问

来源:百度知道 编辑:UC知道 时间:2024/05/24 12:43:05
package testpoint;
public class TestPoint {
double a;
double b;
double c;
double Sum;
public TestPoint(double as,double bs,double cs) {
a=as;
b=bs;
c=cs;
}
public double setX(double X)
{
a=X;
return a;
}
public double setY(double Y)
{
b=Y;
return b;
}
public double setZ(double Z)
{
c=Z;
return c;
}
double getDistance(TestPoint N)
{
return (a-N.a)*(a-N.a)+(b-N.b)*(b-N.b)+(c-N.c)*(c-N.c);
}
public static void main(String args[])
{
TestPoint P = new TestPoint(1.0, 2.0, 3.0);
TestPoint P1 = new TestPoint(0, 0, 0);
System.out.println(P.getDistance(P1));
P.setX(5.0);
System.out.println(P.getDistance(new TestPoint(1.

声明static的话,那这个变量就是类的属性,也就是说所有的TestPoint的实例都共用同一个变量,一个TestPoint实例的static变量发生变化的时候,所有的实例的该变量都会发生变化

这个很简单 你想太复杂了
比如
class X{
public static int a=6;
}

X x1=new X();
X x2=new X();
X x3=new X();

System.out.println(x1.a++);
System.out.println(x2.a++);
System.out.println(x3.a++);

输出结果应该是 6,7,8 而不是6,6,6
简单的说 如果加了static 那所有本类对象x1,x2,x3 他们用的都是一个属性a
而不是大家各自有各自的a

static的属性就是类的属性,被这个类所用,所有这个类的实例都共用这个属性。
q85340813 正解。