2013-11-27 37 views
1

我編碼在Java中的一個項目,並創建了一個類用下面的代碼:如何創建現有類的新實例?

public class VehInfo { 
    private int[][] traffic = new int[20][150]; 
    private int mintime = 0; 
    private int numvehicles = 1; 
    private int[] vehiclecode = new int[5]; 

    public VehInfo(int[][] traffic, int mintime, int numvehicles, int[] vehiclecode) { 
     this.traffic = traffic; 
     this.mintime = mintime; 
     this.numvehicles = numvehicles; 
     this.vehiclecode = vehiclecode; 
    } 
} 

我想用下面的代碼

VehInfo vehinfo = new VehInfo(new int[20][150], new int, new int, new int[5]); 

創建這個類的一個新實例。然而, Netbeans的通知我:

必需的:(INT [] [],INT,INT,INT [])

發現:(int [] [],int [],int [],int [])

我在想什麼?我顯然不會將這些變量初始化爲int [],那麼爲什麼它們會被拾取?

+3

你認爲那是新的INT'將完成? – Gimby

+0

新的int應該被int替換掉 – user1121883

+0

通過哪個int? 「new int」的價值是什麼? – Kayaman

回答

5

你不能啓動簡單的數據類型一樣intbooleancharfloatdouble等 將其更改爲類似的東西:

VehInfo vehinfo = new VehInfo(new int[20][150], 0, 0, new int[5]); 

或刪除傳入的屬性。在我看來,你的默認設置是:

private int mintime = 0; 
private int numvehicles = 1; 
1

嘗試

VehInfo vehinfo = new VehInfo(new int[20][150], 0,0 new int[5]); 

編輯:太晚了:(

+2

沒有「太晚」的正確答案... :-) –

0

你的構造

public VehInfo(int[][] traffic, int mintime, int numvehicles, int[] vehiclecode) 

需要這樣的情況下假設你已經聲明變量:

int[][] traffic = new int[20][150]; 
int mintime = 0; 
int numvehicles = 0; 
int[] vehiclecode = new int[5]; 

然後,你可以給它們賦值:

/** here in your program you assign some values */ 
mintime = 30; 
numvehicles = 2; 
vehiclecode[0] = 44; 
vehiclecode[1] = 77; 

,後來創建

/** then in you program you can create vehinfo objects */ 
VehInfo vehinfo = new VehInfo(traffic, mintime, numvehicles, vehiclecode); 
1

您與語法錯誤掙扎VehInfo類的對象,

試試這個VehInfo vehinfo = new VehInfo(new int[20][150], 1, 2, new int[5]);

1

是這樣的:

VehInfo vehinfo1 = new VehInfo(new int[20][150], new Integer(1), new Integer(1), new int[5]); 

或該:

VehInfo vehinfo2 = new VehInfo(new int[20][150], 1, 1, new int[5]); 

由於INT(或整數)是它們不能沒有值被實例化的原語。

0

嘗試使用數字而不是「new int」像這樣初始化您的類。

VehInfo vehinfo = new VehInfo(new int[20][150], 0, 0, new int[5]); 
0

嘗試: 你需要給實際值的參數初始化類型的對象VehInfo使用您已經創建了VehInfo構造器:

int[][] myint1 = new int[5][5]; //Allocating memory for 5x5 array 
myint1 = {{ 1, 2, 3, 4, 5}, 
      { 6, 7, 8, 9, 10}, 
      {11, 12, 13, 14, 15}, 
      {16, 17, 18, 19, 20}, 
      {21, 22, 23, 24, 25}}; 

VehInfo myVehInfo = new VehInfo(myint1, 5, 5, int[5]);