您的位置:首頁技術文章
文章詳情頁

java - 為什么此私有靜態變量能被訪問呢?

瀏覽:110日期:2024-02-10 14:21:02

問題描述

class Test{ private static int i = 1;public static void main(String[] args){Test test = new Test();System.out.println(test.i); //此處為何能訪問到私有的i變量呢? }}

如果與Test類不同包,調用i變量卻報錯,為何?

問題解答

回答1:

因為main函數也是Test類的靜態函數

回答2:

給你這個圖片吧。你可以看看,尤其要注意protected與缺省之間的區別。java - 為什么此私有靜態變量能被訪問呢?

回答3:

private關鍵字的意思是除了包含這個成員的類之外,其他類都沒法訪問這個成員,包括同處于這個包內的其他類。所以不僅是不同包,相同的包也無法訪問。

回答4:

如果這都不行,private修飾的變量還有什么用?

回答5:

當前類為何不行?

回答6:

如果不行的話,那i在哪用的,豈不是白白聲明一個i啊。還有private是其他類調用Test類的 i 是不能調用的,本類不受限制的。

回答7:

顯然你要重新學習:public private static protected 這四個在面向對象編程的常用修飾符

回答8:

由于i是static,所以test.i(實例.靜態變量)等價于Test.i(類.靜態變量),i又是private,所以只能在Test類內被訪問。

回答9:

這個是一個編程的基礎問題。希望再去看一下定義和范圍。

回答10:

因為private修飾的變量可以在本類中被訪問,這是關于訪問修飾符的問題。

標簽: java
相關文章:
国产综合久久一区二区三区