-4
我剛纔介紹了java類,試圖創建一個用於使用數組計算等級的簡單代碼。我遇到了此問題:無法在原始類型上調用方法雙重
File: C:\Users\Owner\CS-121\GradeDriver.java [line: 18]
Error: Cannot invoke getPoint() on the primitive type double
類和驅動程序如下:
public class Grade{
private double point;
public Grade(double x){
point = x;
}
public double getPoint(){
return point;
}
}
public class GradeDriver{
public static void main(String[] args){
double score;
double text = 0;
double eoc = 0;
double prog = 0;
double mid = 0;
double fin = 0;
double[] textWork = {1.0,4.0,5.0,3.0,3.0,4.0,3.0,1.0,3.0,0.0,
9.0,4.0,5.0,6.0,5.0,3.0,5.0,3.0,1.0,1.0,
7.0,3.0,8.0,7.0,6.0,1.0,3.0,3.0,3.0,1.0,
4.0,2.0,3.0,8.0,1.0};
double[] eocWork = {10.0,34.0,44.0,36.0,40.0,50.0,30.0,38.0,
14.0,40.0,12.0,26.0};
double[] progWork = {10.0,10.0,5.0,7.0,7.0,9.0,10.0};
double[] midTerm = {83.0};
double[] finTerm = {68.0};
for(int j = 0; j < textWork.length; j++){
text = text + textWork[j].getPoint();
}
text = (text/132.0)*7.0;
for(int j = 0; j < eocWork.length; j++){
eoc = eoc + eocWork[j].getPoint();
}
eoc = (eoc/384.0)*15.0;
for(int j = 0; j < progWork.length; j++){
prog = prog + progWork[j].getPoint();
}
prog = (prog/70.0)*28.0;
for(int j = 0; j < midTerm.length; j++){
mid = mid + midTerm[j].getPoint();
}
mid = mid*0.15;
for(int j = 0; j < finTerm.length; j++){
fin = fin + finTerm[j].getPoint();
}
fin = fin*0.35;
score = fin + mid + prog + eoc + text;
System.out.println(score);
}
}
那麼像'textWork [j]'這樣的東西是雙打的,而你正在試圖調用一個方法 - 這就是錯誤信息所說的。如果它們是'Grade'類的實例,那麼你可以在它們上調用'getPoint()',但它們不是。 –
請修復可怕的格式。 –
'textWork [j] .getPoint(); '你想用這個代碼做什麼? –