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