Java 如何编写引用调用它的对象的方法?
我正在制作一个程序,打印出你输入的三个数字,然后输出这些数字的平均值。在创建了所需的方法之后,当我编译代码时,使用带有Java 如何编写引用调用它的对象的方法?,java,oop,arraylist,methods,this,Java,Oop,Arraylist,Methods,This,我正在制作一个程序,打印出你输入的三个数字,然后输出这些数字的平均值。在创建了所需的方法之后,当我编译代码时,使用带有分数的方法时出现了错误。我不确定在调用mPrint()或average()时如何引用分数 编译代码时,它会在得分的行中抛出错误。mPrint(3)和得分。平均值()是。这些错误是: 类型ArrayList的方法(此处的方法)未定义 我导入了:java.util.ArrayList和java.util.Scanner public class OOPtraining { Arra
分数的方法时出现了错误。我不确定在调用mPrint()
或average()
时如何引用分数
编译代码时,它会在得分的行中抛出错误。mPrint(3)代码>和得分。平均值()代码>是。这些错误是:
类型ArrayList的方法
(此处的方法)未定义
我导入了:java.util.ArrayList和java.util.Scanner
public class OOPtraining {
ArrayList<Double> scores = new ArrayList<Double>();
public void mPrint(Integer prints) {
for (Integer i =0;i<prints; i++) {
System.out.println(scores.get(i));
}
}
public void average() {
double divi = scores.get(0)+scores.get(1)+scores.get(2);
System.out.println(divi/3);
}
public void main(String[] args) {
ArrayList<Double> scores = new ArrayList<Double>();
Scanner reader = new Scanner(System.in);
// down here is where I input the scores and then add them to "scores"
System.out.println("Enter a score: ");
double score1 = reader.nextDouble();
while (true) {
System.out.println("Type a double-type number:");
try {
score1 = Double.parseDouble(reader.next());
break;
} catch (NumberFormatException ignore) {
System.out.println("Invalid input");
}
}
scores.add(score1);
System.out.println("Enter another score: ");
double score2 = reader.nextDouble();
while (true) {
System.out.println("Type a double-type number:");
try {
score2 = Double.parseDouble(reader.next());
break;
} catch (NumberFormatException ignore) {
System.out.println("Invalid input");
}
}
scores.add(score2);
System.out.println("Enter another score: ");
double score3 = reader.nextDouble();
while (true) {
System.out.println("Type a double-type number:");
try {
score3 = Double.parseDouble(reader.next());
break;
} catch (NumberFormatException ignore) {
System.out.println("Invalid input");
}
}
scores.add(score3);
//here is where I stop adding the scores to "scores"
scores.mPrint(3);
scores.average();
}
}
公共课堂培训{
ArrayList分数=新建ArrayList();
公共无效打印(整数打印){
对于(整数i=0;i
这将导致编译失败,因为您声明的类没有get方法。但不清楚您到底想做什么
我明白你现在要做的了,你要访问你的类的一个成员变量,“this”指的是你在OOPTraining中的类。你要做的是访问scores ArrayList。要做到这一点,分数必须是一个类变量,而不是主方法中的局部变量。看看这个和那个应该可以开始了。在您试图调用此.get(int)的同一个类中,必须有一个名为get()的方法
否则它将无法工作。
我认为您正在使用list,但忘记了扩展它此
引用了类的某个实例OOPtraining
此。get(0)
调用类OOPtraining
上的get()
方法,并将0
作为该方法的第一个也是唯一参数传递给该方法
问题是您的类OOPtraining
没有get()
方法。您需要将get()
方法添加到OOPtraining
中,或者更可能的是,找出您想要调用的get()
并提供该类的实例。然后,代码看起来像myList.get(0)
如果this.get(i)
失败,那么您可能会犯两个错误
首先,您的类可能没有名为get
的方法。因此,要更正错误,请在类中定义get
方法
其次,如果你有一个get
方法,你可能已经用static
关键字定义了它。在这种情况下,从方法的定义中删除static
关键字。另一个解决方案是用你的类名替换this
关键字。静态方法独立于对象,因此甚至不用构造一个函数就可以调用一个函数。get(…)中有什么?在什么方面它似乎是不正确的?请告诉我们你期望它做什么。它没有任何意义。你的问题很不清楚,请更明确一点,因为在上面的问题中是神秘的,但我想知道的是如何引用ArrayList,如果调用该方法,将调用该ArrayList(在这种情况下,得分
)当我创建一个方法时。我最近添加了代码的其余部分以进行澄清。我不认为回答者需要它的其余部分,但希望这会有所帮助。static
如何影响我的代码取决于我是否使用它?我刚刚编辑了我的答案,你可以在上面搜索更多。我最近练习了方法、ArrayList和HashMaps等等Codecademy和我不完全确定如何使用“this”,因为我没有完全接触到它。
this.get(i)