用组成员显示组名的java
我试图解决Java类中的一个赋值问题。我陷入困境,需要一些帮助。 我正在尝试在我的组类中创建一个方法,该方法将显示组名和组中的4名学生。我的代码当前显示组名和我的学生在数组中的内存位置
public class Group {
/**-------Declaring attributes----*/
String groupName;
int newStudentCount;
/**----------------------------*/
/**--------Constructor------------*/
public Group(String givenGroupName) {
groupName = givenGroupName;
}
Student[] students = new Student[4];
/**----------------------------*/
/**--------Method------------*/
void addStudent(Student st) {
students[newStudentCount] = st;
++newStudentCount;
System.out.println("New student: " +st.getName());
}
public String getGroup() {
return "Group = " + groupName;
}
public Student getStudent(){
return students[0];
}
}
在我的应用程序类中,我有:
public class App {
public static void main(String[] args) {
Group g1 = new Group("Pink Pony Princesses");
Student st1 = new Student("Joshua Mathews");
st1.getName();
g1.addStudent(st1);
Student st2 = new Student("Jame Brooks");
g1.addStudent(st2);
Student st3 = new Student("Mike Myers");
g1.addStudent(st3);
Student st4 = new Student("Christie Richie");
g1.addStudent(st4);
System.out.println(g1.getGroup()+ " " + g1.getStudent());
}
这是我的学生课:
public class Student {
/**-------Declaring attributes----*/
String name;
String degree;
int age;
/**----------------------------*/
/**--------Constructor------------*/
Student(String givenName){
name = givenName;
}
Student(String givenName, String givenDegree, int givenAge) {
name = givenName;
degree = givenDegree;
age = givenAge;
}
/**--------- METHODS --------*/
//Array
public final String [] activities = {
"Working on Homework", "Playing a Game", "Taking a Nap"
};
String getInfo(){
return name + age + degree;
}
String getName() {
return name;
}
int getAge(){
return age;
}
String getDegree() {
return degree;
}
String whatsUp(){
Random rand = new Random();
int randomIndex = rand.nextInt(activities.length);
String returnActivity = activities[randomIndex];
return returnActivity;
}
我不知道如何调用数组来显示这4个名称,而不是它们的内存位置。任何帮助都将不胜感激
# 1 楼答案
通过实现toString(),您可以按照AndrewLeach所说的去做。或 要打印所有学生的名字,你的方法应该是:
# 2 楼答案
我可以从你的问题中推断出几件事
首先,只返回
Group
对象中Student
数组索引0处的学生。如果你想返回所有学生,你的方法签名应该有一个Student[]
作为返回类型,而不是一个Student
对象如果按照上面的提示操作,则必须遍历返回的数组,打印每个学生对象
无论您选择哪种实现,打印内存引用而不是字符串对象的原因是您没有在学生类中重写
toString
当传递给
System.out
调用时,类似的内容将打印出学生数据: