簡體   English   中英

在Java中,如果您的方法具有未指定的可見性關鍵字,會發生什么?

[英]In Java, what happens when you have a method with an unspecified visibility keyword?

我已經和android一起工作了幾年,沒有一次我有老師或任何人告訴我該怎么做。 這整個時間我都在想這個。

當你有一個方法我通常會看到......

public void method(){
//Stuff
}

要么

private void method(){
//stuff
}

我知道void是一種沒有返回值的方法,而public是方法的可見性,但是如果我只是使用這樣的東西就行了......

void method(){
//stuff
}

因為方法可見性只是默認的默認值?

我不知道我是否對,是指定“公共”還是“私人”的好習慣?

未指定任何內容具有特定含義:

  • public - 任何類都可以訪問此成員
  • protected - 子類可以訪問此成員(以及同一個類或同一個包中的代碼)
  • private - 同一類中的唯一代碼可以訪問此成員
  • 沒有(“默認”訪問) - 只有同一個包中的代碼才能訪問該成員

可以說最后一個案例應該有自己的關鍵字,但我們現在堅持使用它。 除非你真的想要使用默認可見性,否則不能指定任何內容的形式很差 - 你是否真的因某種原因需要包可見性,或者你只是默認包裝可見性? 最佳做法是明確使用private非公共成員,除非您需要其中一個成員。

Java有四個級別的可見性:public,protected,(default),private。 這些含義如下:

  1. public - 使您的方法可供任何其他類訪問。
  2. protected - 使您的方法可以被同一個包中的任何類或類的任何子類訪問。
  3. (默認,即無修飾符) - 使您的方法只能訪問同一個包中的類。
  4. private - 使您的方法只能訪問當前類。

在類,方法和字段上指定訪問修飾符時,適用相同的規則。

Java有四個級別的可見性:public,protected,(default),private

  1. 包裝可見。 默認。 不需要修飾符。
  2. 僅對班級可見(私人)。
  3. 對世界可見(公眾)。
  4. 包和所有子類(受保護)可見。

在此輸入圖像描述

默認訪問修飾符 - 無關鍵字:

默認訪問修飾符意味着我們沒有為類,字段,方法等顯式聲明訪問修飾符。

聲明沒有任何訪問控制修飾符的變量或方法可用於同一包中的任何其他類。 默認修飾符不能用於接口中的方法,字段。

私人訪問修改器 - 私人:

聲明為private的方法,變量和構造函數只能在聲明的類本身中訪問。

專用訪問修飾符是限制性最強的訪問級別。 類和接口不能是私有的。

如果類中存在公共getter方法,則可以在類外部訪問聲明為private的變量。

使用私有修飾符是對象封裝自身並從外部世界隱藏數據的主要方式。

公共訪問修飾符 - 公共:

可以從任何其他類訪問聲明為public的類,方法,構造函數,接口等。 因此,可以從屬於Java Universe的任何類訪問在公共類中聲明的字段,方法,塊。

但是,如果我們嘗試訪問的公共類位於不同的包中,則仍需要導入公共類。

由於類繼承,類的所有公共方法和變量都由其子類繼承。

受保護的訪問修飾符 - 受保護:

在超類中聲明受保護的變量,方法和構造函數只能由其他包中的子類或受保護成員類的包中的任何類訪問。

受保護的訪問修飾符不能應用於類和接口。 方法,字段可以聲明為protected,但是接口中的方法和字段不能聲明為protected。

受保護的訪問權限使子類有機會使用輔助方法或變量,同時防止非相關類嘗試使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM