该值无法在Constructor JAVA中传递

时间:2014-09-10 03:10:29

标签: java constructor

我需要构造函数中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

3 个答案:

答案 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();
    }
}