簡體   English   中英

值不能在構造函數傳遞JAVA

[英]The value can't pass in Constructor JAVA

我需要構造函數中num的值,為什么即使我使用set並僅將值9000放在這里,構造函數中num的值也變為零。 先感謝您 :)

這是我的頭等艙

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

您需要創建一個帶有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());
   }
}

您可以創建另一個采用int參數的構造函數,並使用該構造函數設置私有成員。 這是如何做 :

public NewClass1(int n)
{
    num=n;
}

必須在構造函數中傳遞您的值。

公共類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();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM