从main调用的对象数组的Java字符串表示形式
首先,如果我不知道如何正确地解释我的问题,如果标题不完全正确或不够清楚,我很抱歉。这是我的第一篇文章。我将尝试用例子来解释我的初学者问题:
我有以下学生课程:
public class Student {
private String name;
private int matrikelnummer;
public static int STUDENT_COUNT;
public Student(String name, int matrikelnummer){
this.name = name;
this.matrikelnummer = matrikelnummer;
STUDENT_COUNT++;
}
public String toString() {
return "Student Nr.: " +matrikelnummer+" Name: "+name;
}
}
还有另一个课堂辅导:
public class Tutorium {
private int raumNr;
private String tutor;
private String fach;
private Student[] teilnehmer;
public Tutorium(int kapazitaet, int raumNr, String tutor, String fach) {
this.raumNr = raumNr;
this.tutor = tutor;
this.fach = fach;
teilnehmer = new Student[kapazitaet];
}
public String toString() {
if (teilnehmer == null) {
return "Noch keine Teilnehmer";
}
String out = "Tutorium " + fach + " Bei " + tutor + " in " + raumNr + " " + "\n";
return out + --- ; //here i want to print all array element from teilnehmer
}
}
例如,如果具有以下主要功能:
public class TutoriumsVerwaltung {
public static void main(String[] args) {
//Studenten und Tutorien erzeugen.
Student[] studs = {new Student("Tim", 333333),
new Student("Anna", 444444),
new Student("Lisa", 345987),
new Student("Karl", 336292),
new Student("Elisabeth", 999999)};
Tutorium[] tuts = {new Tutorium(5, 6057, "Tobias", "PPR-J"),
new Tutorium(2, 6057, "Roland", "PPR-C"),
new Tutorium(9, 6051, "Max", "PPR-J")};
//Infos ueber Tutorien und Studenten ausgeben.
System.out.println("Es gibt "+Student.STUDENT_COUNT+" Studenten.");
for (Student student : studs)
System.out.println(student);
for (Tutorium tutorium : tuts)
System.out.println(tutorium);
System.out.println("");
我想以以下格式打印Tutorium中的toString()方法:
Tutorium PPR−J bei Tobias in Raum 6057
Teilnehmer:
Student Nr.: 333333 Name: Tim
Student Nr.: 444444 Name: Anna
Student Nr.: 345987 Name: Lisa
我尝试过创建getter/setter(可能不正确?)但没有成功。有人能给我解释一下我的问题和解决办法吗
# 1 楼答案
您想要的基本上是从集合中获取每个元素(在本例中是数组)。您可以通过使用for-loop轻松实现这一点
代码:
# 2 楼答案
也许您可以尝试在Student类和TutoriumsVerwaltung类中重写toString方法
# 3 楼答案
从以下位置修改代码:
到
请注意,我注释掉了这个
(teilnehmer == null)
,因为这个条件永远不会满足,您正在构造函数中创建一个实例,所以teilmehmer永远不会为null你需要设置Teilnehmer:
并定义setter: