privateに対するアクセス

hurts14 23views 更新:2017年6月5日

なんでprivateの変数を他クラスから取ってこれるのか謎でした。

public class memo extends exhoge{
   private Long hoge = null;
     /**
      * @param hoge
      *          セットする hoge
      */
     public void sethoge(Long hoge) {
       this.hoge = hoge;
     }

     /**
      * @return hoge
      */
     public Long gethoge() {
       return hoge;
     }
}

継承元のexhogeから引数hogeを持ってくることでその変数をthis.hogeにsetし、getで返せるそう。
このthis.hogeこそがprivate

それを他クラスで使うには、

memo hoge1 = null;
Long result = hoge1.gethoge();

これでresultにmenoクラスのgethoge()の値、つまりexhogeクラスのhogeの値を使うことができる。

privateでなくpublicにする方法もある。

public class memo extends exhoge{
   public Long hoge = null;
}

こうすると他クラスで

memo hoge2 = null;
Long result = hoge2.hoge;

簡単になるが、カプセル化の概念から背くことになる。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません