2015-12-06 26 views
0

我有一個問題傳遞給構造函數的多個數組。 我們真的可以做到嗎?如何將多個數組傳遞給java中的構造函數?

public class First { 
public String[] a; 
public String[] b; 
public First(String[] a, String[] b){ 
    this.a=a; 
    this.b=b; 
} 
} 

而下一個代碼是我在哪裏使用class First。

Scanner ss = new Scanner(System.in); 
int x; 
System.out.print("How many lines? "); 
x = ss.nextInt(); 
for(int i=0; i<x; i++){ 
System.out.print("A: "); a[i]=ss.nextString(); 
System.out.print("B: "); b[i]=ss.nextString(); 
} 
First ff= new First(a,b); 

在NetBeans中,沒有錯誤,但我不能在另一個類中使用它。

如果你願意幫助我,我會很感激。

回答

1

將多個數組傳遞給Java構造函數沒有任何問題。但是,您可能需要考慮複製正在傳入的陣列(使用Arrays.copyOf())。您還應該認真考慮製作您的實際陣列數據privateprotected

0

問題沒有解決。你不能用另一種方法來使用它。請清除你的問題..但下面的代碼工作正常..你可以檢查出來。

公共類MultipleArr {

String a[]; 
String b[]; 
public MultipleArr(String[] a, String[] b) 
{ 
    this.a=a; 
    this.b=b; 
} 

public static void main(String[] args) { 

    String [] a={"1","2","3"}; 
    String [] b={"2","2","3"}; 

    MultipleArr arr=new MultipleArr(a,b); 

    for(int i=0;i<arr.a.length;i++) 
    { 
     System.out.println(arr.a[i]); 
    } 

    for(int i=0;i<arr.b.length;i++) 
    { 
     System.out.println(arr.b[i]); 
    } 

} 

}

+0

我的意思是我也會做出從用戶的程序輸入,而不是我們把價值從第一次。 'Scanner ss = new Scanner(System.in); int x; System.out.print(「多少行?」); x = ss.nextInt(); 對(INT I = 0; I Embek

+0

嗨@ @Embek ...請檢查下面的代碼.... – kaushik

+0

@Embek請檢查我的第一個ans。它工作正常.. – kaushik

0

公共類MultipleArr {

String a[]; 
String b[]; 
public MultipleArr(String[] a, String[] b) 
{ 
    this.a=a; 
    this.b=b; 
} 

public static void main(String[] args) { 

    String [] a; 
    String [] b; 

    Scanner ss = new Scanner(System.in); 
    int x; 
    System.out.print("How many lines? "); 
    x = ss.nextInt(); 

    a=new String[x]; 
    System.out.print("A: "); 
    for(int i=0; i<x; i++) 
    { 

     a[i]=ss.next(); 
    } 

    b=new String[x]; 
    System.out.print("B: "); 
    for(int i=0; i<x; i++) 
    { 

     b[i]=ss.next(); 
    } 


    MultipleArr arr=new MultipleArr(a,b); 

    for(int i=0;i<arr.a.length;i++) 
    { 
     System.out.println(arr.a[i]); 
    } 

    for(int i=0;i<arr.b.length;i++) 
    { 
     System.out.println(arr.b[i]); 
    } 

} 

}