编译器错误的方法

问题描述:

我遇到了一个小程序,我正在做的麻烦。基本上我有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)的。我不确定这是否是我必须要做的。但我遇到的问题是,当我编译它(尽管这还不算完)它引发了该消息的“无法找到符号”错误“符号:方法.getReturnValue()位置:可变arrayForClasses型Class5 []” 。我只是想知道我在哪里错了?

任何帮助,非常感谢。

谢谢!

+0

'arrayForClasses'是一个数组;它没有一个名为'getReturnValue()'的方法。 –

+0

arrayForClasses是一个Class5 [],它是一个数组 - 并且数组没有getReturnValue()方法。你真的不需要5个班级,你需要1个班级“问题”,你应该做4个(或其他数量)的班级实例 - 每个问题一个。 – esej

+1

使用像arrayForClasses [0] .getReturnValue()这样的数组索引调用getReturnValue()方法。 – Lion

arrayForClasses是一个数组,你不能将方法添加到数组中,只能向中的对象数组中添加数组。您需要调用数组中对象的方法,而不是数组本身。因此,像

arrayForClasses[0].getReturnValue() 

现在,我说“像”,因为我在下面你想做什么困难时期,我有点担心这个想法把“getReturnValue的()“方法分成许多不同的类,没有特定的理由这样做。

+0

我把“getReturnValue()”方法,把所有的类,因为我担心,它不会调用它。我只是把它们放在主类中,并将它改为“arrayForClasses [0]”,正如你向我展示的那样,它工作正常。谢谢! – car

arrayForClasses是阵列;它不是它包含的对象的类中的一个,因此它不具有getReturnValue()方法

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

arrayForClasses[0].getReturnValue() 

的索引可以从0到3(共4种元素)去一个可以使用任一个。你甚至可以访问所有的人都在一个循环:

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

谢谢。这真的有助于另一个刚刚出现的问题! – car