Java:如何返回数组?
这就是代码,据我所知,它应该是有效的。 同样,当我调试我的程序时,数组中似乎充满了相同方法正在创建的对象。 但是,当我试图打印它时,它会再次显示“null”,就像“return”不起作用一样。 为什么会这样Java:如何返回数组?,java,android,arrays,return,Java,Android,Arrays,Return,这就是代码,据我所知,它应该是有效的。 同样,当我调试我的程序时,数组中似乎充满了相同方法正在创建的对象。 但是,当我试图打印它时,它会再次显示“null”,就像“return”不起作用一样。 为什么会这样 public class Course { String courseName; String teacherName; int gradeAv; static int counter; static int maxNumOfStudents; Student studentsArray[
public class Course {
String courseName;
String teacherName;
int gradeAv;
static int counter;
static int maxNumOfStudents;
Student studentsArray[] = new Student[5];
int numOfStudents = studentsArray.length;
public Course() {
}
public Course(String courseName) {
this();
this.courseName = courseName;
}
public Course(String courseName, String teacherName) {
this(courseName);
this.courseName = courseName;
this.teacherName = teacherName;
}
public Student[] addStudent(String name, int age, int grade) {
for (int i = 0; i < 5; i++) {
studentsArray[i] = new Student(name, age, grade);
age += 10;
grade += 10;
}
return studentsArray;
}
public void printStudentArray(Student studentArray[]) {
studentArray = this.studentsArray;
for (int i = 0; i < studentsArray.length; i++) {
System.out.println(studentsArray[i]);
}
}
public int gradeAv() {
for (int i = 0; i < studentsArray.length; i++) {
int temp = 0;
if (studentsArray[i].grade > temp) {
gradeAv = temp;
System.out.println(gradeAv);
}
}
return gradeAv;
}
public void printCourse() {
System.out.println("Course: ");
System.out.println("Course Name: " + courseName + ". "
+ "Teacher's Name: " + teacherName + ". "
+ "Number Of Students: " + numOfStudents + ". ");
}
}
//cour.gradeAv()
}在
Student stud = new Student();
Course cour = new Course("Java", "Ronni");
stud.addStudent("Joe", 23, 100);
student.addStudent(“乔”,23100)代码>不会将任何学生添加到您的课程中stud
是一个完全不同的类的实例,Student
,并且Student
的实现不在您发布的代码中
调用cour
的addStudent
方法,而不是stud
cour.addStudent("Joe", 23, 100);
反而
我还想补充一点,您的代码中有很多奇怪的元素,其中一些是人们在评论中提到的。把它们都列出来会很乏味。我会仔细检查一下,以确保你没有做多余的事情 in
student.addStudent(“乔”,23100)代码>不会将任何学生添加到您的课程中stud
是一个完全不同的类的实例,Student
,并且Student
的实现不在您发布的代码中
调用cour
的addStudent
方法,而不是stud
cour.addStudent("Joe", 23, 100);
反而
我还想补充一点,您的代码中有很多奇怪的元素,其中一些是人们在评论中提到的。把它们都列出来会很乏味。我会仔细检查一下,以确保你没有做多余的事情 试试这个例子:
课程类别:
import java.util.ArrayList;
import java.util.List;
public class Course {
private List<Student> students = new ArrayList<Student>();
private String teacherName;
private String subjectName;
public Course(String subjectName, String teacherName) {
this.subjectName = subjectName;
this.teacherName = teacherName;
}
public void addStudent(Student student) {
students.add(student);
}
public float getAverageGrade() {
float grade = 0;
for (Student student : students) {
grade += student.getGrade();
}
return grade / students.size();
}
public void printCourse() {
System.out.println("Course "+subjectName+" taught by "+teacherName);
System.out.println("Students:");
printStudents();
System.out.println("Aberage grade: "+getAverageGrade());
}
public void printStudents() {
for (Student student : students) {
System.out.println(student.getName()+"\t age "+student.getAge()+" \t grade "+student.getGrade());
}
}
}
请尝试以下示例:
课程类别:
import java.util.ArrayList;
import java.util.List;
public class Course {
private List<Student> students = new ArrayList<Student>();
private String teacherName;
private String subjectName;
public Course(String subjectName, String teacherName) {
this.subjectName = subjectName;
this.teacherName = teacherName;
}
public void addStudent(Student student) {
students.add(student);
}
public float getAverageGrade() {
float grade = 0;
for (Student student : students) {
grade += student.getGrade();
}
return grade / students.size();
}
public void printCourse() {
System.out.println("Course "+subjectName+" taught by "+teacherName);
System.out.println("Students:");
printStudents();
System.out.println("Aberage grade: "+getAverageGrade());
}
public void printStudents() {
for (Student student : students) {
System.out.println(student.getName()+"\t age "+student.getAge()+" \t grade "+student.getGrade());
}
}
}
public void打印学生阵列(学生阵列[]){studentArray=this.studentsArray;..
真的很奇怪而且没有必要…主要方法在哪里?你能告诉我们你调用该方法的代码吗?你的代码中有一些奇怪的工件,涉及实例变量和参数。你用它们做的很多事情都是redundant@JoeRazon将其编辑到您的问题pub中lic无效打印学生阵列(学生阵列[]){studentArray=this.studentsArray;..
真的很奇怪而且没有必要…主要方法在哪里?你能告诉我们你调用该方法的代码吗?你的代码中有一些奇怪的工件,涉及实例变量和参数。你用它们做的很多事情都是redundant@JoeRazon把它编辑到你的问题里谢谢,我t工作:)如何打印对象内部参数的值?(而不是“Student@49e61582“例如)@JoeRazon您需要重写Student
类中的toString()
方法。@JoeRazon最简单的方法是执行类似System.out.println(studentsArray[i].Name)的操作。”
如果您的学生
有一个名称
字段,但最合适的方法可能是给您的学生
类打印
或ToString
方法,该方法返回要打印的字符串
,并调用系统.out.println(studentsArray[i].ToString())
一旦你了解了这一点,我会假设java对象可能也有一个内置的ToString
方法,当你打印它们时,它们会使用这个方法,所以真正的生产级答案是覆盖它。谢谢,它可以工作。:)我如何打印对象中参数的值?(而不是“Student@49e61582“例如)@JoeRazon您需要重写Student
类中的toString()
方法。@JoeRazon最简单的方法是执行类似System.out.println(studentsArray[i].Name)的操作
如果您的学生
有一个名称
字段,但最合适的方法可能是给您的学生
类打印
或ToString
方法,该方法返回要打印的字符串
,并调用系统.out.println(studentsArray[i].ToString())
一旦你了解了这一点,我会假设java对象可能也有一个内置的ToString
方法,当你打印它们时,它们会使用这个方法,所以真正的生产级答案是覆盖它。它解决了我的很多问题,但不幸的是我们还没有学习ArrayList,所以我不能真正使用它。它解决了我的很多问题但不幸的是,我们还没有学习ArrayList,所以我不能真正使用它。
public class Student {
private String name;
private int age;
private int grade;
public Student(String name, int age, int grade) {
this.grade = grade;
this.age = age;
this.grade = grade;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
}