我正在尝试制作一个打印出您输入的三个数字的程序,然后输出这些数字的平均值。在创建所需的方法之后,在编译代码时,使用(map (applyToItself * ) '(1 2 3)) ; ==> (1 4 9)
方法时出现错误。在调用scores
或scores
时,我不确定如何引用mPrint()
。
编译代码时,会在average()
和scores.mPrint(3);
所在的行引发错误。那些错误是:
scores.average();
(此方法)The method
。
我导入了:java.util.ArrayList和java.util.Scanner
is undefined for the type ArrayList<Double>
答案 0 :(得分:4)
this.get(i)
这将导致编译失败,因为您声明的类没有get方法。目前还不清楚你到底想要做什么。
我看到你现在要做的是什么,你正试图访问你班级的成员变量,'this'指的是你在OOPTraining中的班级。你要做的是访问得分ArrayList。为了能够做到这一点,分数必须是一个类变量,而不是main方法中的局部变量。看看那个,这应该让你开始。
答案 1 :(得分:1)
在你尝试调用this.get(int)的同一个类中必须有一个名为get()的方法 否则它将无法工作。 我认为你正在使用列表,并忘记扩展它
答案 2 :(得分:0)
this
指的是您的班级OOPtraining
的某个实例。 this.get(0)
调用类get()
上的OOPtraining
方法,并将0
作为该方法的第一个也是唯一的参数。
问题是,您的班级OOPtraining
没有 get()
方法。您需要向get()
添加OOPtraining
方法,或者更有可能找出要调用的内容get()
并提供该类的实例。然后代码看起来像myList.get(0)
。
答案 3 :(得分:0)
如果this.get(i)
失败,那么您可能会犯2个错误。
首先,您的类可能没有名为get
的方法。因此,要更正错误,请在您的班级中定义get
方法。
其次,如果您确实使用get
方法,则可能使用static
关键字对其进行了定义。在这种情况下,从方法的定义中删除static
关键字。另一种解决方案是用类名替换this
关键字。静态方法与对象无关,因此可以在不构造对象的情况下调用它。