Javaの可視性
table:可視性の段階(広い順)
public 全てのクラスからアクセス可能 -
protected 同一パッケージのクラス&パッケージを超えたサブクラスからアクセス可能 -
package private 同一パッケージのクラスからのみアクセス可能 指定なしだとこれ
private 自分自身のクラスからのみアクセス可能 -
table:可視性を設定できる要素
======= public protected package private private
class public class - class -
interface public interface - interface -
method public T M() protected T M() T M() private T M()
field public T F protected T F T F private T F
code:example.java
// クラスはpackage private
class C {
// フィールドはpublic
// でもクラスがpackage privateなので、これが見えるのは同一パッケージのみ
// つまりpublicと言いつつ実質package privateと同じ
public int i = 1;
}