2013-07-14 68 views
0

讓有一個名爲Calc.java這個類的內部類有一個主類閔姓如何使用數組對象?

public int Min(int one, int two) 
    { 
     return one - two ; 
    } 

現在方法nemed First.java:

package first; 
public class First { 
    public static void main(String[] args) { 
     Calc y [] = new Calc[3]; 

     System.out.println(y[1].Min(5, 3)); 
    } 
} 

時運行:

線程「main」中的異常java.lang.NullPointerException first.First.main(First.java:9)Java結果:1 BUILD SUCCESSFUL(總計 時間:0秒)

Netbeans的顯示提示:不平衡的讀/陣列

寫我不知道什麼是錯的! 謝謝...

+0

總是檢查Java教程 - 它們是非常寶貴的:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html –

+0

僅僅將一個類的數組聲明爲new()是不夠的,實例 - 在打印之前,數組中的每個成員都必須創建爲新實例 – Steven

+0

'y [1] = new Calc; ' –

回答

1

Ÿ1爲空,你必須initialites你的陣列

公共靜態無效的主要(字串[] args){

Calc y [] = new Calc[3]; 
    for(int i=0;i<y.legnth;i++){ 
     y[i] = new Calc(); 
    } 

    System.out.println(y[1].Min(5, 3)); 
} 

而且在Java方法開始寫入字母小寫。您可能對此鏈接感興趣Arrays

+0

hmmmm是Calc y [] = new Calc [3];意味着他默認初始化?或者我必須聲明每個數組變量? –

+0

@MohamedAnan我不明白你的問題,在這裏你都宣稱回答'y array'店計算器類型的3個要素,但thehy不會被初始化,他們是'null' – nachokk

+0

啊哈....所以它不會被初始化默認?如:y [1],y [2],y [3]? –

0

爲什麼在那裏創建一個數組?它真的需要嗎?如果完全需要,您需要在調用任何實例方法之前先使用Calc對象填充該數組。


但是,看起來你的方法應該是 public static,因爲 Calc類只是一個工具類,並且 Min方法根本不與任何實例相關聯,而只與該類相關聯。因此,修改它,以便:

public static int min(int one, int two) 

然後你可以調用這個方法在類名:

Calc.min(5, 3); 

沒有必要有一個類的不同實例。也請看API of Math class,它有類似的實用方法。你會知道我在說什麼。

此外,您的min方法似乎沒有做它應該做的。例如,y[i].Min(5, 3)目前將返回2。奇怪是不是?它完全沒有返回所傳遞參數的最小值。你應該改變return聲明:

return one < two ? one : two; 

如果你明白這一點,就應該進一步擴展其考慮數量相等。

+0

WOOW它的工作......其實我是一個初學Java程序員,這是一個考驗我的新課>>>>感謝 –

+0

@MohamedAnan。不客氣:) –

+0

@Downvoter。謹慎評論。 –

1

您必須在使用它之前初始化calc對象。這是不夠的初始化數組本身,而是你有數組這樣在初始化計算對象:

calc[1]=new calc(); 
+0

謝謝....現在工作:) –

0
Calc y [] = new Calc[3]; 
for (int i = 0; i< 3;i++) 
{ 
    y[i] = new Calc(); 
} 
1

在main方法的第一行,當你正在做

該陣列將是
Calc y [] = new Calc[3]; 

值,

y[0]=null, y[1]=null, y[2]=null 

爲什麼?

因爲像在創建的整數,INT []數組被用默認值(即零),類似地在創建對象數組時,它與默認爲空初始化初始化。

現在做的一個數組項的任何操作之前,你必須創建對象。

,所以你應該做的,

y[1] = new Calc(); 

之前調用最小方法。

我希望這清楚。

相關問題