強 <-- private > (省略) > protected > public --> 弱
アクセス修飾子 | 自パッケージ内のクラスから | どこからでも |
---|---|---|
(省略) | O | X |
public | O | O |
アクセス修飾子 | 自クラス内から | 自パッケージ内から | サブクラスから | どこからでも |
---|---|---|---|---|
private | O | X | X | X |
(省略) | O | O | X | X |
protected | O | O | O | X |
public | O | O | O | O |
□ "A.java"
- package p;
- public class A {
- private int a;
- int b;
- protected int c;
- public int d;
- }
□ "B.java"
- package p; // Aと同一パッケージ
- import p.A;
- public class B {
- void m() {
- A i = new A();
- i.a = 10; // NG
- i.b = 20; // OK
- i.c = 30; // OK
- i.d = 40; // OK
- }
- }
□ "C.java"
- package q; // Aと異なるパッケージ
- import p.A;
- public class C extends A { // Aを継承
- void m() {
- a = 10; // NG
- b = 20; // NG
- c = 30; // OK
- d = 40; // OK
- }
- }
□ "D.java"
Top
- package q; // Aと異なるパッケージ
- import p.A;
- public class D {
- void m() {
- A i = new A();
- i.a = 10; // NG
- i.b = 20; // NG
- i.c = 30; // NG
- i.d = 40; // OK
- }
- }