web-dev-qa-db-ja.com

Javaのメソッドのデフォルトのスコープは何ですか?

入力した場合:

 void doThis(){
     System.out.println("Hello Stackoverflow.");
 }

doThis()のデフォルトのスコープは何ですか?

公?保護されていますか?民間?

154
Joe Fontana

デフォルトのスコープはpackage-privateです。同じパッケージ内のすべてのクラスは、メソッド/フィールド/クラスにアクセスできます。 Package-privateは、保護されたスコープおよびパブリックスコープよりも厳密ですが、プライベートスコープよりも寛容です。

詳しくは:
http://docs.Oracle.com/javase/tutorial/Java/javaOO/accesscontrol.html
http://mindprod.com/jgloss/scope.html

250
Esko Luontola

パッケージプライベートとして定義されたものはすべて、クラス自体、同じパッケージ内の他のクラスからアクセスできますが、サブクラスからではなく、パッケージの外部からはアクセスできません。

アクセスレベル修飾子の便利な表については、 このページ を参照してください...

19
user15299

アクセス修飾子がないと、クラスメンバは、宣言されているパッケージ全体でアクセスできます。詳細については、 Java言語仕様、§6.6。 をご覧ください。

インターフェイスのメンバーは、明示的に宣言されているかどうかにかかわらず、常にパブリックにアクセスできます。

9
erickson

デフォルトのスコープは「デフォルト」です。奇妙です-- これら参照 を参照してください。

5
Michael Haren

Java 8では、デフォルトスコープ(および静的のみ)を使用して、インターフェース自体にメソッドを実装できます。

1
shiv

メソッドに修飾子を与えていない場合、デフォルトでパッケージ内にスコープを持つDefault修飾子になります。
詳細については、参照してください http://wiki.answers.com/Q/What_is_default_access_specifier_in_Java

0
user1011455