如何编写引用调用它的对象的方法?

时间:2016-03-31 13:47:43

标签: java oop arraylist methods this

我正在尝试制作一个打印出您输入的三个数字的程序,然后输出这些数字的平均值。在创建所需的方法之后,在编译代码时,使用(map (applyToItself * ) '(1 2 3)) ; ==> (1 4 9)方法时出现错误。在调用scoresscores时,我不确定如何引用mPrint()

编译代码时,会在average()scores.mPrint(3);所在的行引发错误。那些错误是: scores.average();(此方法)The method

我导入了:java.util.ArrayList和java.util.Scanner

is undefined for the type ArrayList<Double>

4 个答案:

答案 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关键字。静态方法与对象无关,因此可以在不构造对象的情况下调用它。