課程
/后端開發
/Java
/Java入門第二季 升級版
請問這里為什么不能用類名+方法名();調用
2018-01-16
源自:Java入門第二季 升級版 8-9
正在回答
誰說的呀,靜態方法即可以用對象調用,也可以用類名直接調用
xcopfans
這是我在百度上找的,希望對你有點幫助:
在靜態方法中,不能直接訪問非靜態成員(包括方法和變量)。因為,非靜態的變量是依賴于對象存在的,對象必須實例化之后,它的變量才會在內存中存在。例如一個類 Student 表示學生,它有一個變量String address。如果這個類沒有被實例化,則它的 address 變量也就不存在。而非靜態方法需要訪問非靜態變量,所以對非靜態方法的訪問也是針對某一個具體的對象的方法進行的。對它的訪問一般通過 objectName.methodName(args……) 的方式進行。而靜態成員不依賴于對象存在,即使是類所屬的對象不存在,也可以被訪問,它對整個進程而言是全局的。因此,在靜態方法內部是不可以直接訪問非靜態成員的。
運用對象名+方法名();運行是成功的,但是不明白為什么改成類名就不可以。
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
3 回答靜態方法使用
4 回答靜態方法的使用
1 回答靜態方法的使用
3 回答Java 中的 static 使用之靜態方法中的困惑
4 回答static 使用之靜態初始化塊
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-01-22
誰說的呀,靜態方法即可以用對象調用,也可以用類名直接調用
2018-01-18
這是我在百度上找的,希望對你有點幫助:
在靜態方法中,不能直接訪問非靜態成員(包括方法和變量)。因為,非靜態的變量是依賴于對象存在的,對象必須實例化之后,它的變量才會在內存中存在。例如一個類 Student 表示學生,它有一個變量String address。如果這個類沒有被實例化,則它的 address 變量也就不存在。而非靜態方法需要訪問非靜態變量,所以對非靜態方法的訪問也是針對某一個具體的對象的方法進行的。對它的訪問一般通過 objectName.methodName(args……) 的方式進行。而靜態成員不依賴于對象存在,即使是類所屬的對象不存在,也可以被訪問,它對整個進程而言是全局的。因此,在靜態方法內部是不可以直接訪問非靜態成員的。
2018-01-16
運用對象名+方法名();運行是成功的,但是不明白為什么改成類名就不可以。