浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【java】シンプルな内部クラスを使って理解を深める

今回は内部クラスの説明をしていきたいと思います。

継承と修飾子の知識があればすぐ理解できてしまいますが、これは自分用のメモ

同然なのでご勘弁を。

 

用意するもの

■外部クラス
・publicなクラス
・メソッド

■内部クラス
・privateメンバ変数
・getter・setter

■mainクラス

 

目的

普段はprivateフィールドは自分以外のクラス(外部のクラス)からはアクセスすることはできないです。

が、外部クラスとその中にある内部クラスを関連付けることで関連性が読み取ることができて

そのクラスが何をしたいのかを明確にすることができます。

あるクラスの中でピンポイントにクラスに用がある時や、役割ごとにクラスを

区分けして見やすくしたい時によく使われます。

コード


class Castle{
//フィールドにメンバを設置
public Gate i;

class Gate{
//ProtoCastleからのみアクセスを許可する
private String message;

public String getName(){
return message;
}
public void setName(String message){
this.message = message;
}
}

//内部クラスの外のメソッド
public static gateOpen(){
i = new Gate();//iにアクセスしてGateインスタンス生成
//内部クラスのメソッドにメッセージを渡す
i.setName("開門");
}

}
public class ProtoCastle {
public static void main(String[]args){
Castle castle = new Castle();
castle.gateOpen();
System.out.println(castle.i.getName());
}
}

 

CastleクラスではiにアクセスしてGateインスタンスを生成しています。

インスタンス生成後開門メッセージを送っていますね。

内部クラスと紐付けることで内部クラスのメソッドも使える様になりました。

main側ではgateOpenメソッドでsetName後にgetNameで送ったメッセージを

System.out.printlnで確認しています。

内部クラスの動きはこんな感じ。

クラスの関係性を限定的にできたので、かなり見やすいコードになったんじゃないかなと

思っています。

  • この記事いいね! (0)