2012-02-28 4 views
1

この私のクラスのemployesJava配列は、一つのクラスの複数のオブジェクトを格納するための

public class Employe { 

public int noEmploye; 
public String nom; 
public int departement; 
public double salaireBrut; 
public double impots; 
public double rrgc; 
public double assEm; 
public double salaireNet; 
public double SalaireAnnuel; 
public double suplemetaire; 

}

この私のメインemp.noEmployeを置く方法

 Employe emp = new Employe(); 
    emp.noEmploye=123; 
    emp.nom= superman; 
    emp.departement= 4; 
、emp.nom、EMP配列行の.departement

[123、superman、4]のような出力を表示します。

フランク

+1

は、配列がのみ...同じタイプのオブジェクトを保持することができるように、アレイは、などの整数のみ、文字列のみを含めることができます...しかし、両方のではないミックス。 –

+0

しかし、配列リスト? – FrankSharp

+0

あなたは、従業員のArrayList(または配列)を持っています。あなたは配列を作る方法を尋ねていますか? –

答えて

2

私を助けに感謝はどんなあなたがEmployeeの任意のインスタンスをしたい、そして、単にSystem.out.printlnの書式んあなたEmployeeクラスのtoString機能を記述します。

あなたは一例

public String toString() { 
    return "[%d, %s, %d]".format(noEmployee, nom, department); 
} 

のために書くと、あなたはそのようなオブジェクトのコレクションを作成する場合は、

[[123, superman, 4], [1234, batman, 5]] 
+0

しかし、5人の雇用者がいる場合... – FrankSharp

+1

@Frank: 'Employee'クラスの' public String toString() 'メソッドをオーバーライドして_once_する必要があります。 –

+0

@FrankSharp [このチュートリアル](http://docs.oracle.com/)を読んでください。com/javase/tutorial/java/javaOO /)、おそらく[this one](http://docs.oracle.com/javase/tutorial/collections/intro/index.html)も参照してください。 – Irfy

0

まあのような出力が、あなた格納するためObject[]を使用することができます取得しますさまざまな種類のオブジェクトがありますが、それは一般的には良い考えではありません。 Javaでは、静的型付けされた言語であるため、通常は単一の型の配列を持つことです。たぶん、あなたはあなたのプログラムを構造化する方法を再考するべきでしょう。

1

あなたは配列内のアイテムのすべてを置く必要がある場合、あなたはこのようにそれを実行する必要があります。

Object[] items = {item1, item2, ...}; 

あなたはこのような出力すべてを考えることができます:

public String toString(){ 
    StringBuilder b = new StringBuilder(); 
    b.append('['); 
    for(int i = 0; i < items.length; i++){ 
     if(i != 0) b.append(", "); 
     b.append(items[i]); 
    } 
    b.append(']'); 
} 

はしかし、これは一般的です良い考えではありません。プリミティブデータ型はラップされたデータ型に変換されます(intではなくInteger)。これにより効率が低下します。さらに、あなたのコードを読んでいる人には分かりにくいだけです。

あなたが数値の束を検討する場合、何を検討するかもしれないことのようなものである:これはあなたのプリミティブデータ型のラッパーを使用して回避

private static final int NO_EMPLOYEE_OFFSET = 0, DEPARTMENT_OFFSET = 1, ...; 
int[] data; 
String field1; 
Point field2; 
... 

。ただし、配列にすべてのフィールドを格納することはできません。

あなたがこれを行うことを選択した場合、私はIrfyが提供するものを提供するのtoStringを兼ね備えています。そんなに意味がありません

関連する問題