Java 显示包含组成员的组名
我试图解决Java类中的一个赋值问题。我陷入困境,需要一些帮助。 我正在尝试在我的组类中创建一个方法,该方法将显示组名和组中的4名学生。我的代码当前显示组名和我的学生在数组中的内存位置Java 显示包含组成员的组名,java,arrays,class,methods,Java,Arrays,Class,Methods,我试图解决Java类中的一个赋值问题。我陷入困境,需要一些帮助。 我正在尝试在我的组类中创建一个方法,该方法将显示组名和组中的4名学生。我的代码当前显示组名和我的学生在数组中的内存位置 public class Group { /**-------Declaring attributes----*/ String groupName; int newStudentCount; /**----------------------------*/ /**--------Constructor--
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个名称,而不是它们的内存位置。非常感谢您的帮助。我可以从您的问题中推断出几件事 首先,您只返回
组
对象中学生
数组索引0处的学生。如果要返回所有学生,则方法签名的返回类型应为Student[]
,而不是Student
对象
如果按照上面的提示操作,则必须遍历返回的数组以打印每个学生对象
无论您选择哪种实现,打印内存引用而不是字符串对象的原因是您没有在学生类中重写toString
类似的内容将在传递到系统时打印学生数据。out
调用:
@Override
public String toString() {
return someStudentData;
}
通过实现toString(),您可以按照AndrewLeach所说的去做。或 要打印所有学生姓名,您的方法应类似于:
public String getStudent(){
String studentNames = "";
for(Student stu: students){
studentNames+= stu.getName() + ",";
}
return studentNames;
}
知道你的学生类看起来像什么会很有帮助。记住,我不需要它。我添加了它,很抱歉刚刚编辑了我的帖子。请看下面我的答案。我将索引设置为0以测试代码,并查看它将返回什么。当我按照你的第一个建议使用返回学生[];我出错了,因为你需要返回学生数组。只需将您的返回更改为
return students
而不是return students[0]
这是我得到的错误:错误:(30,16)java:不兼容类型:Student[]无法转换为Student这是因为您需要实际处理Student[]的返回类型并将其分配给Student[]的声明,然后反复打印出每个学生。