package-private( "public class"ではなく "class"で宣言されています)のjavaクラスがある場合、内部のメソッドがpublicまたはprotectedまたはpackage-privateの場合は、実際に違いはありません。だから私は使うべきですか、いつ使うべきですか?私は少し混乱しています。Java - パッケージプライベートクラス内のメソッドのアクセシビリティ?
10
A
答えて
18
package-private(「public class」ではなく「class」で宣言されています)のJavaクラスを使用している場合、内部のメソッドがpublicまたはprotectedまたはpackage-privateの場合は、右?
しかし、パッケージプライベートクラスを継承する「保護された」クラスまたは「パブリック」クラスを宣言すると、元のクラスのメンバの可視性はになります。が問題になります。
@kmccoyが指摘するように、クラスをfinalとして宣言すると、サブクラスの可能性がなくなります。
これは本当にウィンドウドレッシングだけです。サブクラスを実際に作成する必要があると判断した場合は、final
を削除するだけです。次に、アクセス修飾子の選択が重要な状況に戻ります。
IMOの場合は、今必要でない場合でも、最も適切な修飾語を選択する必要があります。他に何もない場合は、抽象境界がどこにあるかについてのあなたの意図を文書化する必要があります。
4
パッケージクラス内のパブリックメソッドは、同じパッケージ内のクラスに対してpublicです。しかし、プライベートメソッドは同じパッケージ内のクラスからアクセスできません。
関連する問題
- 1. JShellにパッケージプライベートクラスをインポートする
- 2. Java Swing Shift + F10アクセシビリティ
- 3. アクセシビリティ結果javaのジェンキンに表示
- 4. パッケージプライベートクラスのGrails依存性注入
- 5. 内部コレクションビューを持つTableViewCellのiOSアクセシビリティ
- 6. Java:メソッド内の変数のライフサイクル
- 7. Java:クラス内のメソッドの注文
- 8. のJava - mainメソッド内の別のメソッドからのアクセス変数
- 9. 内部メソッドとプライベートメソッドのAOP Java
- 10. 再帰的メソッド内のjava-loop
- 11. メソッド内のJava多次元配列
- 12. リアクションネイティブのアクセシビリティ
- 13. ツールチップのアクセシビリティ
- 14. UIStepperのアクセシビリティ
- 15. JavaScriptのアクセシビリティ
- 16. Google Chromeのアクセシビリティ
- 17. アクセシビリティの使用
- 18. ビデオのアクセシビリティ
- 19. スクリーンリーダーのアクセシビリティ
- 20. アクセシビリティNodeInfoの値
- 21. Java - Countメソッドの呼び出し内のメソッド
- 22. Java:コンポーネント内のsetPreferredSize()メソッドとsetSize()メソッドの違い
- 23. Java内で同じ名前のメソッド内で別のメソッドを呼び出す
- 24. デバッグ時のTomcatのアクセシビリティ
- 25. 別のJVMのJavaデスクトップアプリケーション内からJava mainメソッドを実行
- 26. Androidのプリファレンスタグのアクセシビリティ
- 27. Javaメソッド - 文字列内のデータベース列の内容を返す
- 28. Java内のオブジェクト内の文字列を返すメソッドを書く
- 29. JavaScriptオブジェクト/関数の別の内部へのアクセシビリティ
- 30. Vaadinグリッドのアクセシビリティ - ポリマー
クラスが「final class SomeClass」の場合、メンバーの可視性は問題になりますか? – kmccoy
最終的な修飾子が将来のリファクタリングで削除された場合:これはソフトウェアであることを覚えておいてください。「final」は「決して変わらない」という意味ではなく、「このタイプの子クラスを、たった今。" –