Java 在这个程序中没有得到任何错误,但是我所需要的输出没有出现。有人能帮我吗?

Java 在这个程序中没有得到任何错误,但是我所需要的输出没有出现。有人能帮我吗?,java,methods,constructor,Java,Methods,Constructor,我得到的输出是0,但我需要的输出是12。我尝试了使用方法,但使用构造函数,我不确定我遗漏了什么。通过新建ThisisSubclass创建的每个实例(对象)都有自己的计数字段。您正在将该字段初始化为0。您有两个构造函数:一个不接受任何参数且不更改count,另一个接受int参数且不更改count 在main中,对构造函数有两个单独的调用,第一个调用不带参数且只保留count的构造函数: class ThisIsASubClass { private int count=0; pub

我得到的输出是0,但我需要的输出是12。我尝试了使用方法,但使用构造函数,我不确定我遗漏了什么。

通过
新建ThisisSubclass
创建的每个实例(对象)都有自己的
计数
字段。您正在将该字段初始化为
0
。您有两个构造函数:一个不接受任何参数且不更改
count
,另一个接受
int
参数且不更改
count

main
中,对构造函数有两个单独的调用,第一个调用不带参数且只保留
count
的构造函数:

class ThisIsASubClass {
    private int count=0;
    public ThisIsASubClass(){
    }
    public ThisIsASubClass(int num){
        count=num;
    }
    public int disp(){
        return count;
    }
}
public class MainClass {
    public static void main(String args[]){
        ThisIsASubClass obj=new ThisIsASubClass();
        ThisIsASubClass obj1=new ThisIsASubClass(12);
        System.out.print(obj.disp());
    }
}
…然后是第二个单独的构造函数,该构造函数接受一个参数并设置
count

ThisIsASubClass obj=new ThisIsASubClass();
您创建的两个独立实例(对象)之间没有交互。因此,您将得到一个由
obj
引用的实例,该实例的
count
等于
0
,以及一个由
obj1
引用的单独实例,该实例的
count
等于
12

ThisIsASubClass obj1=new ThisIsASubClass(12);
…因此它输出
0
,因为
obj
count
0
。如果是的话

System.out.print(obj.disp());

…取而代之的是
12

当您创建类的实例时,每个实例都有自己的实例变量。这些变量不会在实例之间共享。
在这种情况下,您在
obj1
中将count的值设置为12,但您正在打印未通过构造函数初始化的
obj
的count的值。因此,如果
0
,它将打印0。

计数的初始值

然后查看默认构造函数。

System.out.print(obj1.disp());
// Difference ------^
count=0。如果在默认构造函数之后调用方法
disp()
,它将返回零

现在查看
thisisaasubclass(int num)
构造函数。

public ThisIsASubClass(){
    //there is nothing inside 
}
count=num。如果在此构造函数后调用方法
disp()
,它将返回
num

然后查看您创建的对象。

public ThisIsASubClass(){
    //there is nothing inside 
}

现在您应该了解
obj.disp()=0
obj1.disp()=12

系统输出打印(obj1.disp());我会给你12@user3768428:在这里使用默认构造函数时,您没有传递任何值,因此方法将返回默认值
count
,即0。。!!为什么你认为会是12?你有两个对象实例。obj1.disp()将返回12,而obj.disp()将返回0。
    ThisIsASubClass obj=new ThisIsASubClass();
    ThisIsASubClass obj1=new ThisIsASubClass(12);