使用数组从另一个类调用方法

时间:2014-09-01 04:46:23

标签: java arrays

我需要帮助在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错误“

这里有什么问题?

3 个答案:

答案 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;

但是,您的代码中还有其他一些问题:

  1. 您分配一个包含0个元素的数组。这意味着当您尝试访问数组中的元素时,您将获得ArrayIndexOutOfBoundsException。要解决此问题,请更改

    int numOfStudent=0;
    

    int numOfStudent=100; // or some other number, depending on how many students you want to keep track of
    
  2. 修复#1后,您只创建了一个包含空插槽的数组。您尚未创建任何Student个对象。我建议您阅读有关创建对象的内容。为了帮助您入门,您可以执行以下操作来创建单个Student作为数组的第一个元素:

    students[0] = new Student();