2016-07-30 5 views
-2

各ループでクラスのオブジェクトを反復処理できるかどうかは疑問です。例えば、私は車のタイプホンダのオブジェクトを作成しました。モデル、価格、色などの車の状態をすべて追加します。私は車のすべてのインスタンスを印刷したい。私は、各インスタンスを印刷するためにprintステートメントを使用したくありません。それをする最善の方法は何ですか?ありがとう。以下はクラスのオブジェクトを反復するための各メソッドの使用方法

私のJavaコードは、あなたがより良いCarクラスのtoStringメソッドをオーバーライドして、単にそれが好きで印刷していた

package classandobjects; 

public class MainClass { 

    public static void main(String[] args) { 

     Classes friend1 = new Classes(); 
     friend1.name="yusuf"; 
     friend1.age=27; 
     friend1.country="Nigeria"; 
     friend1.department="EE"; 
     friend1.gender="male"; 

     Classes friend2 = new Classes(); 
     friend1.name="mathew"; 
     friend1.age=30; 
     friend1.country="Nigeria"; 
     friend1.department="EE"; 
     friend1.gender="male"; 

     FavPlayers player = new FavPlayers(); 
     player.pname="J.Terry"; 
     player.position="C.Back"; 
     player.gaols=38; 
     player.awards="25-awards"; 

     FavPlayers player1 = new FavPlayers(); 
     player1.pname="F.Lampard"; 
     player.position="Midfield"; 
     player.gaols=50; 
     player.awards="10-awards"; 

     Car model = new Car(); 
     model.modelName="Honda Civic"; 
     model.color="Ash-color"; 
     model.Doors="4-doors"; 
     model.price=900000; 

     System.out.println("below is my friend information"); 
     System.out.println(friend1.name); 
     System.out.println(friend1.age); 
    } 
} 

+0

ちょっとした提案ですが、 'Classes'は1つのアイテムの1つのインスタンスのように見えます。したがって、クラス名は 'Class'でなければなりません。 –

+0

List、Collection、または配列に格納されている場合はfor - eachを使用できます。 – Stultuske

+0

for-eachで使用できるコードには、['Iterable'](https://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html)はありません。 – Polygnome

答えて

0

私はまあ、あなたは文字列を構築し、どこかでそれを印刷する必要があるとしている各インスタンスに

を印刷するprint文を使用する必要はありません。

どのような方法が最適ですか?

私が正しく理解していれば、オブジェクトを印刷したいですか?

toString()メソッドを実装します。

public class Classes { 
    // other code 
    public String toString() { 
     // change how you want 
     return this.name + ", " + this.age; 
    } 
} 

次に、あなたがオブジェクトのリストを印刷したい場合は、あなたがループ以上にリストを必要とする

System.out.println(friend1); 

を行うことができます。リフレクションを使用してオブジェクトフィールドと値のリストを取得することはできますが、それは不要です。

+0

あなたは歓迎ですが、[こちらを読んでください](http://stackoverflow.com/help/someone-answers) –

2

です:

System.out.println(model); 

確かに、あなたは「needn各インスタンス変数を個別に印刷します。あなたは、オブジェクトが連想配列(例えばJavaScriptが)ある言語から来て、Javaでforeachループを使用してインスタンスを印刷する方法を尋ねたならば、答えはということです

public @Override String toString() { 
    return modelName + " [" + color + ... + "]"; // also consider StringBuilder 
} 

:あなたのtoStringは、次のビューを持っていることJavaでは許可していません(は反射でも可能ですが)、foreachでオブジェクト変数を反復処理することはできません。

関連する問題