我从老师那里得到下一个作业-
我需要建立一个Course
班级Student
并将每个学生插入课程班级每个学生都有一个ID,名称和等级。
我已经尝试了下一个代码:
public class Course {
Student[] android = new Student[100];
private void addStudent(Student a) {
for (int i=0;i<android.length;i++) {
if (android[i] == null) {
android[i] = a;
break;
}
}
}
public static void main(String[] args) {
addStudent(Joe);
}
}
我需要将我在“学生”类中创建的“学生”插入到数组中的第一个空位置。当我尝试addStudent(Joe);
它给我一个错误:“乔不能解析为一个变量”
学生班级代码:
public class Student {
private float grade;
private String name;
private long id;
public Student(long c,String b,float a) {
grade = a;
name = b;
id = c;
}
public static void main(String[] args) {
Student Joe = new Student(1,"Joe",40);
}
**数组可容纳100个学生(开始时为空)
添加学生时-我需要检查数组中的第一个null值并将其放在那里
当打印学生时:我只需要打印数组中的非空对象**
这段代码
Array[] Android = new Array[100];
正在创建type的数组Array
,因此您只能Array
在其中存储对象。
如果要存储Student
,则需要创建一个数组,而不是:
Student[] android = new Student[100];
另外,您需要意识到Java中的数组是从0开始索引的。也就是说,您不能引用与数组大小相同的位置。在您的情况下,您制作了一个包含100个元素的数组,但是您的for循环正试图在其中放置101个对象。
此外,您的问题文本暗示您只想将新Student
对象插入一次,但是循环会将其放入数组中的每个空位置。
尝试以下方法:
for (int i=0;i<android.length;i++) { // < instead of <=, don't hardcode the length
if (android[i] == null) {
android[i] = a;
break; // once we insert a, stop looping
}
}
编译器找不到的原因Joe
是范围问题。您已在类的方法中声明Joe
为局部变量。如果希望编译器能够看到它,则需要使用与使用它相同的方法对其进行声明:main()
Student
public static void main(String[] args) {
Student Joe = new Student(1,"Joe",40);
addStudent(Joe);
}
在Google上快速搜索“ Java变量范围教程”,应该使您充分了解如何以及何时可以使用局部变量和成员变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句