//考虑代码(*)
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 //地址
然后如何访问传递给方法的类的实际成员?
这实际上是否可行?
答案 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());
}
}