2012-11-19 63 views
-2

如何在構造函數中初始化值不能由對象傳遞並且我們可以從主方法傳遞它們的值?使用main方法初始化構造函數的值

class ex 
    { 
     int a,b; 
     ex() 
     { 
      this.a=b; 
     } 

     public static void main(String args[]) 
     { 
      //here we pass the values to that consructor ex 
      ex obj=new ex(); 
     } 
    } 
+1

那麼問題是什麼,這真的是JavaEE? –

+0

請詳細說明實際問題 – theAlse

回答

3

使重載構造函數接受兩個參數。

public ex(int a, int b) { 
    this.a = a; 
    this.b = b; 
} 

public static void main(String...args){ 
ex obj = new ex(1,2) 
} 

值canntot按對象傳遞應該從主要的方法

傳如果我理解正確的,你想從main方法傳遞參數,並在構造函數nitialize他們,唯一的是做的是將它們傳遞給constuctor而對象創建

+0

不,我們不能使用參數構造函數 – deepthi

0

您還可以從構造setter方法如果不希望在聲明新的對象,以顯示初始值。

請在下面看到的代碼以供參考:


class Testcl {

int a,b; Testcl(){ setValues(1,2); } private void setValues(int a, int b){ this.a=a; this.b=b; } public static void main(String [] args){ Testcl test = new Testcl(); System.out.println("a : " + test.a + " b : " + test.b); }}
0

首先要說的是,這實際上確實在這個意義上的「工作」 ... ...它編譯,沒有任何錯誤的執行。

int a,b; // default initialized to 'zero' 

    ex() { 
     this.a=b; // assigns 'zsro' to a. 
    } 

當然但是,它並沒有達到任何東西......因爲a已經zero在這一點上。現在

main方法可以後構造函數返回分配的東西到a和/或b領域。但也沒辦法(在純Java )得到一些非零值到b調用構造函數前......如果這是你的要求。

實際的解決方案是隻是爲了ab參數添加到構造。


1 - 非純Java的解決方案可能是「猴子圍繞」與構造函數的字節碼,以便它是你「需要」做的。但那真是太可怕了,可怕的解決方案有迴歸你的傾向。

+0

作爲'int's,'a'和'b'會被初始化爲零,而不是null。 – GriffeyDog

+0

當然...固定 –