用一个循环打印几个类,java

时间:2014-09-29 15:52:38

标签: java arrays object printing

//考虑代码(*)

    class Whatever {
        Class1 c1 = new Class1[10];
        CLass2 c2 = new Class2[10];
        Class3 c3 = new Class3[10];

    void printArray(Object[] a) {
        for(Object b: a) {
            System.out.println(b);
        }
    }
}

然后当我想要打印这些类中保存的名称时 它们已在另一个类中初始化,并设置了this.name = name 并且对所有人都是独一无二的。 因此,当尝试使用以下方法打印它们时:

例如打印

Class1 @ 124124124 //地址

然后如何访问传递给方法的类的实际成员?

这实际上是否可行?

2 个答案:

答案 0 :(得分:0)

您可以在toString()Class1中覆盖Class2方法,依此类推:

@Override
public String toString() {
return this.memberX + " " + this.memberY;
}

将打印memberX和memberY。 System.out.println(x);默认调用x.toString();

答案 1 :(得分:0)

我不认为你正在使用" class"正确地在你的问题。通过"然后当我想要打印这些类中保存的名称时#34;我假设您的意思是保存在Class1,Class2等的实例中的名称...初始化并存储在给定的数组中。

好像你希望你的类共享一些功能。你说你们所有人都有一个名字字段 - 为什么不通过界面指明他们真的可以做到呢?

public interface Namable{
    public String getName();
}

然后让所有类实现此接口......

public class Class1 implements Namable{ ... }
public class Class2 implements Namable{ ... }
etc...

然后你可以改变方法的签名以获取一个Namables数组,每个Namables都可以调用getName()方法。

void printArray(Namable[] a) {
    for(Namable b: a) {
        System.out.println(b.getName());
    }
}