Java 从对象所在的类创建对象

Java 从对象所在的类创建对象,java,object,static,Java,Object,Static,我想,输出分别是5,10,15,20。但是代码的工作方式是15,20 有人能解释一下原因吗?您的成员是静态的: public class MultipleObjects2Test { static int a; static int b; MultipleObjects2Test(int a,int b){ this.a=a; this.b=b;} public static void main(String[] a

我想,输出分别是5,10,15,20。但是代码的工作方式是15,20


有人能解释一下原因吗?

您的成员是静态的:

public class MultipleObjects2Test {

    static int a;
    static int b;

    MultipleObjects2Test(int a,int b){

        this.a=a;
        this.b=b;}

        public static void main(String[] args) {

            MultipleObjects2Test test = new MultipleObjects2Test(5,10);
            MultipleObjects2Test test1 = new MultipleObjects2Test(15,20);


        System.out.print(test.a);
        System.out.print(test.b);

        System.out.print(test1.a);
        System.out.print(test1.b);

    }
}
因此,这两个实例对
a
b
具有相同的值

删除
static
关键字,您将获得预期的输出

static int a;
static int b;

a
b
被声明为静态,这意味着变化

public class MultipleObjects2Test 
{
    int a;
    int b;

    MultipleObjects2Test(int a,int b)
    {
        this.a=a;
        this.b=b;
    }

    public static void main(String[] args) 
    {
        MultipleObjects2Test test = new MultipleObjects2Test(5,10);
        MultipleObjects2Test test1 = new MultipleObjects2Test(15,20);

        System.out.print(test.a);
        System.out.print(test.b);

        System.out.print(test1.a);
        System.out.print(test1.b);
    }
}
static int a;static int b;
 int a; int b;