java對象問題
在靜態方法中,通過類名.變量為什么不能訪問(sum方法)?
public?class?HelloWorld?{ ???? ????//?定義靜態變量score1 ????static?int?score1?=?86; ????//?定義靜態變量score2 ?????????int?score2?=?92;? ????//?定義靜態方法sum,計算成績總分,并返回總分 public???static??int?sum()?{? ??????return?(score1+HelloWorld.score2); } public?static?void?main(String[]?args)?{ ???????? ????????//?調用靜態方法sum并接收返回值 int?allScore?=sum(); ???????? System.out.println("總分:"?+?allScore); }
}
2016-07-19
? 題目要求:// 定義靜態變量score2???? ?static?? int score2 = 92;
如果希望在靜態方法中調用非靜態變量,可以通過創建類的對象,然后通過對象來訪問非靜態變量。
public?? static? int sum() {
? HelloWorld hello=new HelloWorld();
????? return (score1+hello.score2);
}
2016-07-19
靜態方法訪問非靜態成員必須先創建對象,然后通過對象訪問,訪問非靜態方法也是如此
2016-07-19
public???static??int?sum()?{?
???? HelloWorld hello=new Helloworld();
??????return?(score1+hello.score2);
}
2016-07-19
靜態方法中可以直接調用同類中的靜態成員,但不能直接調用非靜態成員。