「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ゲッター

pointこの用語のポイント

pointメソッドだよ

pointメンバ変数から値を取得するよ

スポンサーリンク

簡単に書くよ

ゲッター(英:getter)とは

オブジェクト指向なプログラミングの話で出てくる用語のひとつ
であり

メンバ変数から値を取得して呼び出し元に返す仕事をするメソッドを指す俗称
です。
もう少し噛み砕いて書くと

クラス(オブジェクト指向の話で出てくる概念のひとつで「設計図」っぽいやつ)の中にある変数から値を取得して呼び出し元に返す仕事をしている(クラスの中にある)関数のこと
です。


image piyo

詳しく書くよ

はじめに留意事項です。
本ページの説明は

変数
関数
オブジェクト指向
クラス


を何となく理解している前提で書いていきます。
これらの用語について「さっぱり、分からん!」な人は、先に、そっちを勉強してきてください。

ちょっと休憩

準備はOKですか?

それでは順番に見ていきましょう。

オブジェクト指向なプログラミングにおいて、クラスの中には

1.変数
2.関数


の2つを用意できます。

ゲッター(getter)

クラスの中に用意する変数は、専門用語で「メンバ変数」と呼ばれます。
クラスの中に用意する関数は、専門用語で「メソッド」と呼ばれます。

ゲッター(getter)2

以上を踏まえて

メンバ変数から値を取得して呼び出し元に返す仕事をするメソッド

を指す俗称が「ゲッター(getter)」です。
少し正確性に欠けるけど分かりやすそうな表現を使うと

クラス内の変数から値を取得して呼び出し元に返す関数

ですかね。

ゲッター(getter)3

異論を唱える人もいますが

メンバ変数を外部から操作できるようにするのは良くないんじゃないかな?

な考え方があります。

Javaを例に説明しますが、例えば、以下のような書き方は「けしからん!」と考える人がいるのです。

class Piyota {
    //メンバ変数
    public String name;
}

public class test03{
    public static void main(String[] args){
        Piyota p = new Piyota();

        //メンバ変数「name」に値を設定
        p.name = "ピヨ太";

        //メンバ変数「name」から値を取得
        String piyotaName = p.name;

        //画面表示
        System.out.println(piyotaName);

    }
}


この処理では

        //メンバ変数「name」に値を設定
        p.name = "ピヨ太";


で、Piyotaクラス内のメンバ変数「name」に直接、値「ピヨ太」を設定しています。

ゲッター(getter)4

同様に

        //メンバ変数「name」から値を取得
        String piyotaName = p.name;


で、Piyotaクラス内のメンバ変数「name」の値を直接、取得しています。

ゲッター(getter)5

このような書き方を見て「これはダメだ!クラス内のメンバ変数は隠ぺいするべし!直接、触らせるな!」と考えるのです。
そんな人は、同じ処理を例えば以下のように書きます。

class Piyota {
    //メンバ変数
    private String name;

    //メソッド
    void setName(String _name){
        this.name = _name;
    }

    String getName(){
        return this.name;
    }

}

public class test01{
    public static void main(String[] args){
        Piyota p = new Piyota();

        //メンバ変数「name」に値を設定
        p.setName("ピヨ太");

        //メンバ変数「name」から値を取得
        String piyotaName = p.getName();

        //画面表示
        System.out.println(piyotaName);

    }
}


違いが分かりますかね。

まず違うのは

    private String name;

の部分です。
「public」だったのが「private」になっています。

「public」は「どこからでも触れるよ!」な指定です。
「private」は「クラスの外からは触らせないよ!」な指定です。
この変更によって、クラス「Piyota」のメンバ変数「name」は、クラスの外から触れなくなりました。

ゲッター(getter)6

とはいえ、クラスの外からメンバ変数「name」を触りたい場合もあるでしょう。

そのために以下のメソッド(関数)を用意しました。

    //メソッド
    void setName(String _name){
        this.name = _name;
    }

    String getName(){
        return this.name;
    }


「setName()」メソッドは、メンバ変数「name」に値を設定するときに使う関数です。
直接、メンバ変数「name」に値を設定することはできませんが、この関数を呼び出すことで、間接的にメンバ変数「name」に値を設定できます。

実際に値を設定しているのは

        //メンバ変数「name」に値を設定
        p.setName("ピヨ太");


の部分です。

ゲッター(getter)7

「getName()」メソッドは、メンバ変数「name」から値を取得するときに使う関数です。
直接、メンバ変数「name」の値を取得することはできませんが、この関数を呼び出すことで、間接的にメンバ変数「name」の値を取得できます。

実際に値を取得しているのは

        //メンバ変数「name」から値を取得
        String piyotaName = p.getName();


の部分です。

ゲッター(getter)8

このように「クラス内のメンバ変数は隠ぺいするべし!直接、触らせるな!」な人は

メンバ変数を直接触らせる代わりにメンバ変数を操作するメソッドを用意する

のです。

この「メンバ変数を操作するメソッド」のうち「メンバ変数から値を取得して呼び出し元に返すメソッド」を指す俗称が「ゲッター(getter)」です。
「ゲット(get)」+「~する人(er)」で「ゲッター(getter)」ですね。
「人じゃないじゃん!」とツッコミたくなるかもしれませんが、ゆるく捉えてください。

ゲッター(getter)9

ちなみに「メンバ変数に値を設定するメソッド」は「セッター(setter)」と呼びます。
こちらは「セット(set)」+「~する人(er)」で「セッター(setter)」です。

ゲッター(getter)10

気が向いたら、併せて覚えてあげてください。

ゲッター(getter)とセッター(setter)の要・不要については、ベテランの間でも意見が分かれたりします。
お仕事でプログラミングをしているのであれば、現場の慣習に合わせておくのが無難だと思います。


image piyo2

一言でまとめるよ

まぁ「ゲッター(getter)」って単語が出てきたら「メンバ変数から値を取得するメソッドなんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像021
書籍画像042

おまけ

■訳してみるよ

「getter(ゲッター)」は「get(ゲット)」+「er」です。
「get(ゲット)」の意味は「得る」とか「受け取る」とか「入手する」とか「もらう」とか「買う」とか「命中する」とか「捕える」とか あれやこれやです。
接尾辞「er」を付けると「~する人」とか「~するもの」的な意味になります。
何となく くっつけると

もらうやつ

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
7日間でハッキングをはじめる本 TryHackMeを使って身体で覚える攻撃手法と脆弱性
インフルエンサー六法 活動開始から情報発信、収益化までに潜むトラブル対策50
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】