我正在尝试在 Java 环境中学习面向对象编程。我正在编写一个相当简单的代码,但收到此错误:
Exception in thread "main" java.lang.NullPointerException
at Advisor_score.Rating.Score(Rating.java:12)
at Advisor_score.Rating.main(Rating.java:25)
这是我的代码:
package Advisor_score;
public class Rating {
double [] Ratings;
double sum;
double raw_advisor;
double advisor_score;
public Rating (double [] x){
double [] Ratings = x;
}
public double Score(){
for(int i=2;i<Ratings.length;i++){
sum+=Ratings[i];
}
raw_advisor=((sum-(3*(Ratings.length-2)))/4);
advisor_score= 2.5+(2.5*(1-Math.pow(Math.E, -.5*raw_advisor)));
return advisor_score;
}
public void print(){
System.out.println(advisor_score);
}
public static void main(String[] args){
double p1_1[] = {101,1,1,1.5,.5};
Rating d = new Rating(p1_1);
d.Score();
d.print();
}
}
我已经看了几个小时了,无法找出代码的问题。我是编程新手,有人可以帮助我吗?提前致谢!
public Rating (double [] x){
double [] Ratings = x;
}
这里你声明一个局部变量Ratings
并分配x
到它。之后,变量就超出了范围。
你想做的是Ratings = x;
,这将设置实例变量Ratings
to x
而不是创建一个新的且未使用的局部变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)