我需要构造函数中num的值为什么构造函数中num的值变为零,即使我使用set并得到只是将值9000放在这里。提前谢谢你:)
这是我的头等舱
public class NewClass1 {
private int num;
public NewClass1() {
System.out.println("Get Num: "+num);
}
public void setNum(int n) {
num = n;
}
public int getNum() {
return num;
}
public void Message() {
System.out.println(num);
}
}
这是我的主要课程
public class NewClass2 {
public static void main(String[] args ) {
NewClass1 obj = new NewClass1();
obj.setNum(9000);
obj.Message();
}}
Output: GetNum: 0
9000
答案 0 :(得分:5)
您需要创建一个带有int参数的构造函数,就像您的setter方法一样。
如,
public class Foo {
private int bar;
public Foo(int bar) {
this.bar = bar;
}
// .... more code, getters, setters, toString,...
}
您需要从NewClass1类中删除System.out.println。那些应该在使用NewClass1的类中。
class TestFoo {
public static void main(String[] args) {
Foo foo = new Foo(42);
System.out.println("bar is: " + foo.getBar());
}
}
答案 1 :(得分:0)
您可以创建另一个采用int参数的构造函数,并使用此参数设置私有成员。方法如下:
public NewClass1(int n)
{
num=n;
}
答案 2 :(得分:0)
必须在构造函数中传递值。
公共类NewClass1 {
private int num;
public NewClass1( int n)
{
n=num;
System.out.println("Get Num: "+num);
}
public int getNum() {
return num;
}
public void Message() {
System.out.println(num);
}
}
and your main class will look like this
public class NewClass2
{
public static void main(String[] args ) {
NewClass1 obj = new NewClass1(9000);// your valur
obj.Message();
}
}