求大佬!這實現(xiàn)了靜態(tài)方法訪問普通成員方法嗎?
public class Staticlearn {
????static int score1 = 66;????????????????//定義靜態(tài)變量
????static int score2 = 99;?
????public static int sum(){????????????????//定義靜態(tài)方法
????????int sum = score1 + score2;
????????return sum; //返回值
????}
????public int show(){
????????//System.out.println(sum);? 普通成員方法需要會報錯
????????int show = sum();
????????System.out.println(score1); ???? //普通成員方法可以直接訪問靜態(tài)變量或非靜態(tài)變量
????????return show;
????}
????public static void main(String[] args){
????????Staticlearn object = new Staticlearn();????????//創(chuàng)建類的對象
????????int allScore = object.show();????????????????????????//靜態(tài)方法訪問普通成員方法???
????????System.out.println(allScore);
????}
}
我梳理了一份序列,求大佬幫我看看是不是對的~
static靜態(tài)方法
??????? -靜態(tài)變量????? (直接訪問)
??????? -非靜態(tài)變量?? (創(chuàng)建類的對象訪問)
??????? -靜態(tài)方法????? (直接調(diào)用)
??????? -非靜態(tài)方法?? (創(chuàng)建類的對象訪問)
普通成員方法
??????? -靜態(tài)變量????????(直接訪問)
??????? -非靜態(tài)變量?????(直接訪問)
??????? -靜態(tài)方法????????(通過對象調(diào)用)
??????? -非靜態(tài)方法????(直接訪問)
2019-11-25
這是我的測試流程,如果有問題歡迎指出,謝謝大家的幫助( ?? ω ?? )y
我得出的結(jié)論是:
因為程序優(yōu)先加載靜態(tài),所以靜態(tài)互相訪問和調(diào)用OK,此時普通成員還未加載 ,所以報錯。
通過創(chuàng)建類的對象,把普通成員方法加載出來,此時靜態(tài)訪問和調(diào)用OK。
普通成員最后加載,場上所有成員都已出現(xiàn),所以直接訪問OK
2019-11-23
題主你就沒有定義靜態(tài)方法啊,main函數(shù)不算
2019-11-20
我也是剛?cè)腴T,對于你所提的,不知我下面的筆記是否能解答!?
普通成員方法:
靜態(tài)變量????????(直接訪問)
-非靜態(tài)變量?????(直接訪問)
?-靜態(tài)方法????????(直接調(diào)用)
?-非靜態(tài)方法????(通過對象訪問)
/靜態(tài)方法:
public static void print() {
System.out.println("靜態(tài)方法調(diào)用執(zhí)行==");
//靜態(tài)方法可以直接調(diào)用同類中的靜態(tài)成員:
System.out.println("調(diào)用同類中的靜態(tài)成員:"+ hello);
//不能直接調(diào)用非靜態(tài)成員:
//System.out.println("調(diào)用靜態(tài)成員"+ vae);
//通過對象來調(diào)用非靜態(tài)成員,對象必須是在方法體內(nèi)創(chuàng)建才有效調(diào)用,在方法體外創(chuàng)建的類對象調(diào)用非靜態(tài)成員是無效的
tesedemo tesed = new tesedemo();
System.out.println("通過對象調(diào)用非靜態(tài)成員:" + tesed.vae);
}?
//==================================================================================
//普通成員的方法中,可以直接訪問同類中的? 非靜態(tài)變量與 靜態(tài)變量:
public void pel() {
String huy = "方法體中的非靜態(tài)變量";
?
// 普通方法體內(nèi)調(diào)用靜態(tài)方法是允許的
print();
//普通方法可以直接訪問同類中的 靜態(tài)變量
System.out.println("普通方法訪問 靜態(tài)變量:"+ hello);
//調(diào)用普通方法須通過類的對象調(diào)用,在方法體內(nèi)可直接訪問非靜態(tài)變量
System.out.println("普通方法訪問非 靜態(tài)變量:"+ huy);
//調(diào)用普通方法須通過類的對象調(diào)用
System.out.println("調(diào)用普通方法須通過類的對象調(diào)用");
// 注: 因程序入口"main" 是靜態(tài)方法,在調(diào)用普通方法時必須是對象調(diào)用。而定義的靜態(tài)方法可直接訪問方法名