為什么錯了?
ublic class HelloWorld {
? ??
? ? // 定義靜態(tài)變量score1
? ? static int score1 = 86;
? ? // 定義靜態(tài)變量score2
? ? ? ? ? int score2 = 92;?
? ? // 定義靜態(tài)方法sum,計算成績總分,并返回總分
public? ?static? int sum() {?
? ? ?
? ? int num=score1+HelloWorld.score2;
? ? ??
? ? ? return num;
}
public static void main(String[] args) {
? ? ? ??
? ? ? ? // 調(diào)用靜態(tài)方法sum并接收返回值
int allScore = sum;
? ? ? ??
System.out.println("總分:" + allScore);
}
}
2018-09-10
首先,? int score2 = 92; 和?int num=score1+HelloWorld.score2;矛盾,靜態(tài)方法不能直接訪問非靜態(tài)變量,你的score2定義為非靜態(tài)變量,但你的HelloWorld.score2卻在直接訪問score2,(注意,通過類名進行訪問屬于直接訪問,非直接訪問是指通過創(chuàng)建對象再調(diào)用對象的方式訪問)。
其次,int allScore = sum();? ?這句錯了,你這是將‘sum()’作為一個變量直接賦給allScore。直接訪問靜態(tài)方法的意思是,不用通過創(chuàng)建對象的方式來訪問,而是通過類名來訪問,但是,不管是哪種方式訪問方法,都要用上調(diào)用對象的基本格式,即“? 對象名或類名.方法名(); "? , 所以正確的應該為 int allScore = HelloWorld.sum();
2018-12-16
1,應該是
HelloWorld hellp=new HelloWorld();
int sum=score1+hello.score2;
非靜態(tài)變量不能直接調(diào)用
2.int allScore = sum;這個不對,sum只是一個局部變量,他的作用域只在sum()這個方法中,所以應該是
int allScore=sum();
2018-09-04
要求:定義靜態(tài)變量score2為靜態(tài);
int allScore = sum;你這里是賦值,不是調(diào)用方法
2018-08-24