Java 如何使用for each迭代类的对象

Java 如何使用for each迭代类的对象,java,Java,我想知道是否可以使用for-each循环遍历类的对象。例如,我创建了一个honda类型的对象car。我将汽车的所有状态,如型号、价格、颜色等附加到汽车上。我想打印汽车的所有实例。我不想使用print语句来打印每个实例。最好的方法是什么?谢谢 下面是我的java代码 package classandobjects; public class MainClass { public static void main(String[] args) { Classes fri

我想知道是否可以使用for-each循环遍历类的对象。例如,我创建了一个honda类型的对象car。我将汽车的所有状态,如型号、价格、颜色等附加到汽车上。我想打印汽车的所有实例。我不想使用print语句来打印每个实例。最好的方法是什么?谢谢

下面是我的java代码

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);
    }
}

您最好在
Car
类中重写
toString
方法,并简单地按如下方式打印:

System.out.println(model);
实际上,您不需要单独打印每个实例变量。您的
toString
可能具有以下视图:

public @Override String toString() {
    return modelName + " [" + color + ... + "]"; // also consider StringBuilder
}
如果您来自对象是关联数组(例如JavaScript)的语言,并询问如何在Java中使用
foreach
循环打印实例,那么答案是Java不允许这样做(虽然可以通过反射实现),并且您无法通过
foreach
对对象变量进行迭代

我不想使用print语句来打印每个实例

嗯,你必须建立一个字符串并在某个地方打印出来

最好的方法是什么

如果我理解正确,您想打印对象吗

然后实现一个
toString()
方法

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

System.out.println(friend1);

如果要打印对象列表,则需要一个循环列表。您可以使用反射来获取对象字段和值的列表,但这似乎是不必要的。

只是一个建议,但
Classes
看起来像一个项目的单个实例。因此,类名应该是
class
,如果它们存储在列表、集合或数组中,则可以使用for-each。代码中没有任何内容可用于with。问题是询问[打印汽车]的最佳方式,即根据链接的问题,通过覆盖toString来打印汽车实例。@cricket\u 007-True。虽然
Class
对一个类来说不是一个好名字;)不客气,但是请