[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

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

メンバ変数

pointこの用語のポイント

pointクラスの中にある変数だよ

point「属性」を定義したものだよ

pointオブジェクト指向で登場するよ

スポンサーリンク

簡単に書くよ

メンバ変数とは

オブジェクト指向における「属性」を定義したもの。
もう少しざっくばらんに書くと

クラスの中にある変数
です。

image piyo

詳しく書くよ

まずは概念的な部分を見ておきましょう。

ずばり!

オブジェクト属性を定義したもの」が「メンバ変数」です。

ハイ、何を言っているのか、さっぱり分かりませんね。

大丈夫です。
順番に説明していきます。

まずは、オブジェクト指向の復習から行きましょう。

オブジェクト指向は「『モノ(どんな奴でどう動く)』に注目した考え方」です。

オブジェクト指向の話で登場する「オブジェクト」は「モノ」です。
この「モノ」は「属性」と「操作」の要素を持っています。

「属性」とか「操作」とか言われると、難しく感じるかもしれませんね。
要は「どんな奴(属性)で、どう動ける(操作)か」ということです。

例えば、ここにピヨ太君がいたとしましょう。

メンバ変数

オブジェクト指向で考えた場合、ピヨ太君は「モノ」です。

メンバ変数2

さて、このピヨ太君ですが、どんな奴だと思いますか?

まずピヨ太君の性格や嗜好ですが、

・基本的にのんびり屋
・たまに頑張り屋さん
・寝るのが好き
・食べるのも好き


です。

メンバ変数3

ピヨ太君ができることは

・寝る
・食べる
・遊ぶ


です。

メンバ変数4

これをまとめると、以下のようになります。

モノ:ピヨ太君
 ■どんな奴
  ・基本的にのんびり屋
  ・たまに頑張り屋さん
  ・寝るのが好き
  ・食べるのも好き

 ■どう動ける
  ・寝る
  ・食べる
  ・遊ぶ


改めてまとめると、ピヨ太君のぐーたらっぷりが際立ちますね。

ピヨ太君は「モノ」です。
カッコつけて「オブジェクト」と表現してみましょう。

オブジェクト:ピヨ太君
 ■どんな奴
  ・基本的にのんびり屋
  ・たまに頑張り屋さん
  ・寝るのが好き
  ・食べるのも好き

 ■どう動ける
  ・寝る
  ・食べる
  ・遊ぶ


また、上の方で

・「オブジェクトの属性を定義したもの」が「メンバ変数」
・「どんな奴か」が「属性」


と書きました。

「どんな奴」を「メンバ変数」に置き換えてみます。

オブジェクト:ピヨ太君
 ■メンバ変数
  ・基本的にのんびり屋
  ・たまに頑張り屋さん
  ・寝るのが好き
  ・食べるのも好き

 ■どう動ける
  ・寝る
  ・食べる
  ・遊ぶ


あと、今回の説明とは関係ないのですが、ついでなので書いておきます。
「どう動ける」をカッコつけた表現、オブジェクトの操作を定義したものは「メソッド」です。

オブジェクト:ピヨ太君
 ■メンバ変数
  ・基本的にのんびり屋
  ・たまに頑張り屋さん
  ・寝るのが好き
  ・食べるのも好き

 ■メソッド
  ・寝る
  ・食べる
  ・遊ぶ


如何でしょう?
オブジェクト指向について、何となく分かりましたかね。

オブジェクト指向においては、何らかの「モノ」をカッコつけて言ったのが「オブジェクト」です。
「モノ」には「属性」と「操作」の2つの要素があります。
その「モノ」は「どんな奴(属性)」で「どう動けるか(操作)」を表現するためです。

この「どんな奴」で「どう動ける」のうち「どんな奴」の部分を定義したものが「メンバ変数」です。

以上が、メンバ変数の概念的な説明です。

次に、もう少し実践的な説明をします。

まずは予備知識から行きましょう。

変数プログラミング言語における「値を入れておく箱」ね。
処理の中で値を入れたり取り出したりできる箱です。

メンバ変数5

クラス」にも触れておきましょう。
クラスはオブジェクト指向で登場する概念で「それがどんなものか(設計図)」です。
クラスが「設計図」、インスタンスが「実際に作ったもの」で、オブジェクトが「それらをふんわりと表現したもの」と理解してください。

メンバ変数6

以上を踏まえて「クラスの中にある変数」を気取って表現したのが「メンバ変数」です。
「メンバー変数」でも間違いではないと思いますけどね。
「メンバ変数」と「ー」を入れないのが一般的です。

メンバ変数について、Javaを例に、もう少し細かく見てみましょう。

例えば、以下の内容のソースコードプログラムの元ネタ)があったとします。

//クラス「ピヨ太」
class Piyota{
    //年齢
    int age;
    //性別
    String sex;

    //年齢を設定
    void setAge(int _age){
        age = _age;
    }

    //年齢を返却
    int getAge(){
        return age;
    }

    //性別を設定
    void setAge(int _sex){
        sex = _sex;
    }

    //性別を返却
    String setAge(){
        return sex;
    }

}


このコードは「ピヨ太」クラスを定義しています。
よく分からなければ、ピヨ太君の設計図だと思ってください。

さて、このピヨ太君の設計図ですが、大きく分けて2つの要素からできています。
それは

    //年齢
    int age;
    //性別
    String sex;


の部分と

    //年齢を設定
    void setAge(int _age){
        age = _age;
    }

    //年齢を返却
    int getAge(){
        return age;
    }

    //性別を設定
    void setAge(int _sex){
        sex = _sex;
    }

    //性別を返却
    String setAge(){
        return sex;
    }


の部分です。

前半部分は、ピヨ太君がどんな奴か書いてある部分です。
ピヨ太君は「年齢」という要素を持っています。
ピヨ太君は「性別」という要素を持っています。

後半部分は、ピヨ太君がどう動けるかが書いてある部分です。
ピヨ太君は「年齢」を変えることができます。
ピヨ太君は「年齢」を答えることができます。
ピヨ太君は「性別」を変えることができます。
ピヨ太君は「性別」を答えることができます。

つまり、このピヨ太君の設計図は

モノ:ピヨ太
 ■どんな奴
  ・「年齢」という要素を持っている
  ・「性別」という要素を持っている

 ■どう動ける
  ・「年齢」を変える
  ・「年齢」を答える
  ・「性別」を変える
  ・「性別」を答える


と、まとめることができます。

さぁ、もう一息です。
「モノ」は「オブジェクト」です。
「どんな奴」は「メンバ変数」です。
「どう動ける」は「メソッド」です。

それを踏まえて、書き換えてみましょう。

オブジェクト:ピヨ太
 ■メンバ変数
  ・「年齢」という要素を持っている
  ・「性別」という要素を持っている

 ■メソッド
  ・「年齢」を変える
  ・「年齢」を答える
  ・「性別」を変える
  ・「性別」を答える


となります。

つまり

    //年齢
    int age;
    //性別
    String sex;


がメンバ変数です。

ついでなので書いておくと

    //年齢を設定
    void setAge(int _age){
        age = _age;
    }

    //年齢を返却
    int getAge(){
        return age;
    }

    //性別を設定
    void setAge(int _sex){
        sex = _sex;
    }

    //性別を返却
    String setAge(){
        return sex;
    }


がメソッドです。

だいぶもったいぶって書きましたが、なんとなく分かりましたでしょうか。

オブジェクト指向における「属性」を定義したものであり、クラスの中にある変数が「メンバ変数」です。

image piyo2

一言でまとめるよ

まぁ「メンバ変数」って単語が出てきたら「クラスの中にある変数なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク