私はSCJPをKathy SierraとBert Batesによって読んでいます。 21 that "パブリック修飾子は、インターフェイスにデフォルトアクセスではなくパブリックにする場合に必要です"。これは本当ですか?もしそうであれば、インタフェースメソッドは(常にpublicである)インタフェースが実装クラスの同じパッケージにある場合にのみアクセス可能です...?それはデフォルトのアクセス修飾子の意味なので、私は少し混乱しています。インターフェイスにアクセス修飾子を指定しないと、そのインターフェイスにデフォルトのアクセス権が設定されます。
3
A
答えて
2
インターフェイスにアクセス修飾子を指定しないと、そのインターフェイスはデフォルトアクセス権を持ちますか?
はい、該当します。 Javaの型/フィールド/メソッド(クラス内)は、アクセス修飾子が指定されていない場合、パッケージレベルのアクセス権を持ちます。 inteface型で定義されたメンバは、デフォルトでpublicです。
チュートリアル - Controlling Access to Members of a Classを読んでください。ここでinterface
1
自体はpackage protected
ですが、方法はinterface
がpublic
だけでなく、あなたは、彼らが意味public void bar();
かvoid bar();
宣言することができ
public interface Foo
{
void bar(); // this is always public and nothing else
}
方法である
interface Foo
{
void bar(); // this is always public and nothing else
}
ここでは、デフォルトでは常にpublic
です同じこと、個人的に、私はいつもpublic
を入れます。ex明示的なは常によりも暗黙的です
関連する問題
- 1. デフォルトのアクセス修飾子7
- 2. メソッドまたはインターフェイスでアクセス修飾子を定義できない理由はありますか?
- 3. アクセス修飾子
- 4. アクセス修飾子
- 5. 設定したアクセス修飾子++の#define CONSTANT_NAME constant_value
- 6. PHP関数の修正(コピーフォルダ - そのアクセス権を設定する)
- 7. Delphiのアクセス修飾子
- 8. アクセス修飾子エラー - クラスは公開されていますが、
- 9. 数値定数の前に予想される指定子修飾子リスト
- 10. unity3Dのアクセス修飾子が問題にならない
- 11. varとvalのscalaのアクセス修飾子
- 12. スカラユニットテストのセットアップ(アクセス修飾子修飾子を使用しますか?)
- 13. Java Access指定しないでパブリックにアクセスする指定子
- 14. アクセス修飾子の適切な適用
- 15. クラスと内部クラスのアクセス修飾子
- 16. javascriptのクラスとアクセス修飾子
- 17. 動的アクセス修飾子
- 18. Springアクセス修飾子private
- 19. Java 9のインターフェイスメソッドのデフォルトのアクセス修飾子ですか?
- 20. 'string'の前に指定された修飾子リストがありません
- 21. 「部屋」の前に指定された修飾子リストがありません
- 22. タイプ指定子を持たないタイプ修飾子
- 23. 変更可能な指定子が記憶域クラス指定子に分類されますが、修飾子ではないのはなぜですか?
- 24. エラー: "デリゲートヘッダーの 'RootViewController'の前に予期される指定子 - 修飾子リスト
- 25. Rubyのインスタンス変数にアクセス修飾子がありますか?
- 26. C: "tcp_seq"の前に予期される指定子 - 修飾子リスト
- 27. C#の:アクセス修飾子メソッドを作る
- 28. Delphiの「厳密なプライベート」と「保護された」アクセス修飾子の違いは?
- 29. C#のインターフェイスメンバのアクセス修飾子
- 30. 設定ファイルのアクセス権FileProvider
*インターフェイス*にパブリックアクセスを許可する場合は、そうする必要があります。ただし、インターフェイスの個々の*メンバ*は常に公開されています。 – cHao
例えば、インタフェース自体にデフォルトのアクセス権がある場合、そのメソッドは実装されているパッケージの外でどのように使用されますか?その場合のインタフェースは実装クラスには見えません。デフォルトのアクセス権がある場合、そのメソッドがpublicになる理由は私には意味がありません:-( – user1142130
パッケージは他のどのクラスからも参照可能です。外部ユーザーはインターフェイスを使用することができません - 既定のアクセスは事実上「内部使用のため」ですが、クラスで公開されるように定義されたメソッドを呼び出すことができます。もちろん、クラスは公開されています。 – cHao