[英]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.