2010-02-10 139 views
34

在Java中,是訪問說明符訪問修飾符是一樣的東西嗎?訪問說明符和訪問修飾符有什麼區別?

+5

有趣的是,我從來沒有在幾年前看到這個特殊的問題,但你顯然不是唯一一個想知道這個問題的人:http://www.google.com/search?q=difference+access+specifier+access+modifier;) – BalusC 2010-02-10 17:05:16

回答

37

號「訪問修飾符」是privateprotectedpublic官方術語,而術語「訪問說明符」不會在Java language specification出現在所有和據我所知是沒有的東西,被廣泛使用。

「訪問修飾符」是在Java language specification中使用的private,protectedpublic的官方術語。 「訪問說明符」在Java API doc中用作同義詞,但這是我第一次注意到這一點。堅持使用JLS術語可能會更好。

+2

+1用於證明JLS。我認爲這畢竟只是語言障礙。 – BalusC 2010-02-10 17:12:27

0

據我說,是的,這兩個術語指的是相同的東西,可互換使用。

+0

這不取決於你,它取決於JLS,而「訪問說明符」一詞根本就沒有出現。 – EJP 2010-05-28 05:28:16

-3

從技術上講,private,public,protected和default被視爲訪問說明符。這些處理誰可以...問題。修飾符afaik是易失性的,最終的,靜態的,瞬態的等。這些處理如何..方面。

+0

請爲此提供JLS引用。這是毫無根據的。 – EJP 2010-05-28 05:22:37

0

JDI引用是我見過的在Java規範中使用的術語「訪問說明符」的唯一地方。即使在那裏,公共/保護/私人/包裝也被稱爲「修飾」。真的沒有理由在Java中使用'訪問說明符'這個術語,這顯然只是一個頁面上的錯誤。

1

Java有基本上2類型修飾符:

  1. Java訪問修飾符
  2. java的非訪問修飾符

Java訪問修飾符和Java訪問說明是一回事,這是publicprivateprotected

-3

通過使用訪問說明符,我們定義誰可以訪問我們的類/方法和變量(或任何與我們使用訪問說明符)。 基本Java訪問符四種類型 -

  1. 市民: - 可見的世界,
  2. 私人: - 可見的只有類,
  3. 保護: - 可見的包和所有子類,和
  4. 默認: - 可見於封裝

但是訪問修飾符是一類/方法/可變的特性。 訪問修飾符五種類型

  1. 決賽: - 最後完成的類,方法的實現,和變量
  2. 靜: - 用於創建類的方法和變量
  3. 同步震盪修飾符: - 這是用來線程
  4. 摘要: - 用於創建抽象類和方法
  5. 短暫
+2

請爲這個毫無根據的斷言提供一個參考。 – EJP 2013-09-20 04:51:56

+4

誰上傳了這個?這顯然是錯誤的。 – gexicide 2014-09-10 10:27:06

+0

Java觀點這個答案是錯誤的。所有關鍵字都被視爲** Access修飾符**。這可能是正確的其他編程語言 – Premraj 2016-01-09 01:16:18

0

在一些較早的語言中,public,private,protected和像C++這樣的默認值被認爲是訪問說明符,而其他所有內容都被認爲是訪問修飾符,但在Java中沒有用於說明符的術語,因此默認情況下所有內容都僅被視爲修飾符。 所以公共,私有,保護,默認,最終,抽象,靜態,strictfp,同步,本機,瞬態和易失性都只是修飾符。

它簡單的測試,當我們編譯下面的代碼

私有類測試{}

我們將得到編譯時錯誤說,修改私有這裏不允許的。對於其他修改器也是如此。 也許java編譯器(javac)只能將所有內容視爲「修飾符」。

3

術語訪問說明符由C++程序員使用,不在java中。在Java中,我們使用訪問修飾符

例如:當我們聲明一個類私人,靜態編譯器清晰地顯示出錯信息如下:
enter image description here