有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用组成员显示组名的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个名称,而不是它们的内存位置。任何帮助都将不胜感激


共 (2) 个答案

  1. # 1 楼答案

    通过实现toString(),您可以按照AndrewLeach所说的去做。或 要打印所有学生的名字,你的方法应该是:

    public String getStudent(){
    
      String studentNames = "";
      for(Student stu: students){
        studentNames+= stu.getName() + ",";
      }
    
      return studentNames;
    }
    
  2. # 2 楼答案

    我可以从你的问题中推断出几件事

    首先,只返回Group对象中Student数组索引0处的学生。如果你想返回所有学生,你的方法签名应该有一个Student[]作为返回类型,而不是一个Student对象

    如果按照上面的提示操作,则必须遍历返回的数组,打印每个学生对象

    无论您选择哪种实现,打印内存引用而不是字符串对象的原因是您没有在学生类中重写toString

    当传递给System.out调用时,类似的内容将打印出学生数据:

    @Override
    public String toString() {
        return someStudentData;
    }