Java / 基礎 / クラス / フィールド

Java / 基礎 / クラス / フィールド

メンバとも呼ばれる、クラスから生成されたインスタンスが保持し、アクセス可能になる変数。

private

フィールド宣言に付与することにより、そのアクセス範囲をそのクラスのインスタンスたち内部に限定する

class Hoge{
    private String v1;
}
public class Main {
    public static void main(String[] args) {
        Hoge h1 = new Hoge();
        String s = h1.v1;  // これはできない
    }
}
class Hoge{
    private String v1;
    public void dododo(){
        String s = h1.v1;   // 自身からはこれはできる
    }
}

なんのメリットがあるのかよくわからないが、このようなアクセスは許される。

class Hoge{
    private String v1;
    public void dododo(){
        Hoge h1 = new Hoge();
        String s = h1.v1;   // 自身とは別インスタンスのフィールドではあるが、同一クラス由来インスタンス内部では private を無視できる。意味不明。
    }
}

transient 修飾子

この修飾子を付与することによってシリアル化の際にそのフィールドは無視される。

class Hoge implements Serializable {
    public String v1;
    public transient String v2;
}

ファイルやサーバ資産等の環境に拘束されていて、ポータブルで無いモノをメンバに保持している場合にこれを使って回避したりする。

java/basic/class/instance_field/start.txt · 最終更新: 2020-11-26 13:46 by ore