我需要一些建议.我创建了三个类Om(人类),Parinte(父亲)和Copil(儿童).我已经创建了这个类的构造函数.在主类中,我为每个类创建了一个实例.现在我将我的对象存储在ArrayList中.在此之后,我将创建一些方法来处理我的对象,例如按名称对它们进行排序.我的问题是,在我调用我的排序方法之后如何将这些对象打印成一个清晰的String格式,因为我每次都会得到像@这样的东西…当我尝试只打印存储在我的集合中的值时?
我的代码:
Om(人类)课程:
public class Om {
String nume;
String prenume;
String cnp;
Om(String nume,String prenume,String cnp){
this.nume=nume;
this.prenume=prenume;
this.cnp=cnp;
}
}
我的Parinte(父亲)课程:
public class Parinte extends Om{
String domiciliu;
Parinte(String nume, String prenume, String cnp, String domiciliu){
super(nume,prenume,cnp);
this.domiciliu=domiciliu;
}
}
我的Copil(儿童)课程:
public class Copil extends Parinte {
int varsta;
Copil(String nume, String prenume, String cnp, String domiciliu, int varsta){
super(nume,prenume,cnp,domiciliu);
this.varsta=varsta;
}
}
最后我的主要课程:
import java.util.ArrayList;
import java.util.Arrays;
public class main {
public static void main(String[] args) {
Om om1=new Om("Dubolari", "Dragos", "2006004034120");
Parinte p1=new Parinte("Enache","Andrei","2006004034120","Al. Cel Bun 13");
Copil c1 = new Copil("Enache","Valeriu","2006004034120","Al. Cel Bun 13",15);
ArrayList colectie = new ArrayList();
colectie.add(om1);
colectie.add(p1);
colectie.add(c1);
}
}
解决方法:
您需要覆盖对象的toString().这是一个例子:
public class Copil extends Parinte {
int varsta;
Copil(String nume, String prenume, String cnp, String domiciliu, int varsta){
super(nume,prenume,cnp,domiciliu);
this.varsta=varsta;
}
@Override
public String toString() {
return "Copil. Nume" + nume + " Varsta: " + varsta; //Whatever you want to do here
}
}
然后你可以迭代你的集合并打印对象:
for(Om o: colectie){
System.out.println(o); //printing calls the toString()
}
标签:java
来源: https://codeday.me/bug/20190624/1279480.html