Java 方法的编译器错误

Java 方法的编译器错误,java,compiler-construction,Java,Compiler Construction,我正在做的一个小程序有问题。基本上我有6节课。1个主类,4个“扩展”主类的子类和另一个运行程序的类。到目前为止,运行该程序的类如下所示: public class ClassToRunProgram { public void main(String[] args){ Class1 a = new Class1(0, "class1"); //I've created 1 main class (Class5) that Class2 b = new Class2(1, "class2")

我正在做的一个小程序有问题。基本上我有6节课。1个主类,4个“扩展”主类的子类和另一个运行程序的类。到目前为止,运行该程序的类如下所示:

public class ClassToRunProgram {

public void main(String[] args){

Class1 a = new Class1(0, "class1"); //I've created 1 main class (Class5) that 
Class2 b = new Class2(1, "class2"); //these 4 classes extend.
Class3 c = new Class3(2, "class3");
Class4 d = new Class4(3, "class4");

int randomNum = (int) (Math.random() *3);

Class5[] arrayForClasses = new Class5[]{a, b, c, d}; //since they're extending this
                                                    //class I want to make them into
                                                   //a single Array?


    String numberQuestion = JOptionPane.showInputDialog(null, 
"What question do you want to ask? \n 
Enter a number: \n 
1. First Question? \n 
2. Second Question? \n 
3. Third Question?");

int question = Integer.parseInt(numberQuestion); //not sure if this part is 
                                                //actually relevant at all??
                                               //Think it might be since I want to
                                              //use integers in my if statement below


if(question == 1){
    JOptionPane.showMessageDialog(null, "Blah blah"+arrayForClasses.getReturnValue()+" blah");
}
.getReturnValue()方法位于所有类(1-5)中。我不确定这是否真的是我必须要做的。但我遇到的问题是,当我编译它(即使它还没有完成)时,它会抛出一个“找不到符号”错误,消息是“SYMBOL:method.getReturnValue()location:variable arraryforclass type Class5[]”。我只是想知道这件事我哪里做错了

非常感谢您的帮助


谢谢

arrayForClasses
是一个数组,您不能将方法添加到数组中,只能添加到数组中的对象。您需要对数组中的对象而不是数组本身调用该方法。大概是

arrayForClasses[0].getReturnValue()

现在,我说“类似”是因为我很难理解您要做的事情,我有点担心在没有特定原因的情况下将“getReturnValue()”方法放入许多不同的类中,仅适用于阵列内的对象。您需要对数组中的对象而不是数组本身调用该方法。大概是

arrayForClasses[0].getReturnValue()

现在,我说“类似”是因为我很难理解您试图做的事情,我有点担心将“getReturnValue()”方法放入许多不同的类中,而没有特定的原因;它不是包含对象的类之一,因此没有
getReturnValue()
方法

您需要访问数组的元素(即
Class5
或其子类之一的对象),并调用
getReturnValue()

arrayForClasses[0].getReturnValue()
索引可以从0到3(总共4个元素),您可以使用任意一个。您甚至可以在一个循环中访问它们:

for (Class5 elem : arrayForClasses) { // cycles through each element in order
  elem.getReturnValue();
}

arrayforclass
是一个数组;它不是包含对象的类之一,因此没有
getReturnValue()
方法

您需要访问数组的元素(即
Class5
或其子类之一的对象),并调用
getReturnValue()

arrayForClasses[0].getReturnValue()
索引可以从0到3(总共4个元素),您可以使用任意一个。您甚至可以在一个循环中访问它们:

for (Class5 elem : arrayForClasses) { // cycles through each element in order
  elem.getReturnValue();
}

arrayforclass
是一个数组;它没有名为
getReturnValue()
的方法。ArrayForClass是一个Class5[],它是一个数组,而数组没有getReturnValue()方法。实际上,您不需要5个类,只需要1个类“问题”,您应该为该类创建4个(或其他数量的)实例-每个问题一个。使用数组索引调用方法
getReturnValue()
,例如
ArrayForClass[0]。getReturnValue()
。多行字符串也不会编译
ArrayForClass
是数组;它没有名为
getReturnValue()
的方法。ArrayForClass是一个Class5[],它是一个数组,而数组没有getReturnValue()方法。你真的不需要5个类,你需要1个类“Question”,你应该为该类创建4个(或其他数量的)实例-每个问题一个。使用数组索引调用方法
getReturnValue()
,比如
arrayForClasses[0]。getReturnValue()
。我放了“getReturnValue()”后,多行字符串就不会编译了方法,因为我担心它不会调用它。我只是把它们拿出来,放在主课上,改成了“arrayForClasses[0]”,就像你在上面给我看的那样,效果很好。非常感谢。我将“getReturnValue()”方法放入所有类中,因为我担心它不会调用它。我只是把它们拿出来,放在主课上,改成了“arrayForClasses[0]”,就像你在上面给我看的那样,效果很好。非常感谢。非常感谢。这确实有助于解决另一个突然出现的问题!非常感谢。这确实有助于解决另一个突然出现的问题!