我需要帮助在main方法中使用数组从定义类调用方法。
public class Student{
private String id;
public void setId(String id){
this.id=id;
}
public String getId(){
return id;
}
}
主要是有一群像这样的学生,
public static void main(String[] args){
int numOfStudent=0;
Student[] students = new Student[numOfStudent];
students[numOfStudent].setId(JOptionPane.showInputDialog("Enter id:"));
numOfStudent++;
}
我不断收到错误消息
“java:6:错误:找不到符号
学生[numOfStudent] .setId(JOptionPane.showInputDialog(“输入 ID:“));
symbol:variable JOptionPane location:class Whatever
1错误“
这里有什么问题?
答案 0 :(得分:3)
编译器认为JoptionPane
是一个变量(你没有声明)。
您需要在文件顶部导入此类。
此外,您将获得ArrayIndexOutOfBoundsException,因为您的数组长度为0
,因此没有元素(索引为0
或任何其他索引)。
答案 1 :(得分:0)
那是因为您使用0
初始化数组
Student[] students = new Student[numOfStudent];
numOfStudent
为零。因此,当您尝试运行此行时
students[numOfStudent].setId(JOptionPane.showInputDialog("Enter id:"));
编译器抱怨,因为没有学生在索引0中。事实上。你的学生数组是空的。
答案 2 :(得分:0)
要解决您的直接问题,您需要在import
的顶部添加Whatever.java
语句:
import javax.swing.JOptionPane;
但是,您的代码中还有其他一些问题:
您分配一个包含0个元素的数组。这意味着当您尝试访问数组中的元素时,您将获得ArrayIndexOutOfBoundsException
。要解决此问题,请更改
int numOfStudent=0;
到
int numOfStudent=100; // or some other number, depending on how many students you want to keep track of
修复#1后,您只创建了一个包含空插槽的数组。您尚未创建任何Student
个对象。我建议您阅读有关创建对象的内容。为了帮助您入门,您可以执行以下操作来创建单个Student
作为数组的第一个元素:
students[0] = new Student();