オブジェクト

クラスを理解する前に、オブジェクトという言葉を理解する必要があります。オブジェクトは、関連するデータ(プロパティ:変数)や手段(メソッド:関数)をひとまとまりに入れた「もの」です。理解しづらいい方は、配列をイメージしてください。配列もオブジェクトの一つです。ただし、配列にはデータ(プロパティ:変数)しか入れることができません。オブジェクトは、配列に手段(メソッド:関数)も入れられる「もの」として考えればイメージできると思います。

クラス

クラスは、オブジェクトのもとになるものです。言い換えると、クラスはプロパティやメソッドを一般化したもので、このままでは利用できません。クラスを使えるように実体(インスタンス)化したものが、オブジェクトになります。
これでは、やっぱり何のことかわかりませんね。PHP で書いたクラスの例を示します。次のPHPでのクラス例 ソースコードをご覧ください。
クラスは、class 定義されている class test_class { ・・・・ } です。class 内では、プロパティ(変数)の定義とメソッド(関数)の定義ができます。PHPでは、クラス名と同じ名前のついた関数が、クラスのオブジェクト生成と同時に実行されます。この例では、$obj = new test_class() が実行されると test_class は、$obj というオブジェクトになります。同時に、class と同名の function test_class(){ ・・・・ } が実行されます。
PHP では、オブジェクトのプロパティやメソッドは、" オブジェクト名 -> " につづけて、指定します。$obj->var1 が一つの変数、$obj->in_class() が一つの関数と考えれば解りやすいでしょう。オブジェクトのプロパティやメソッドは、変更することもできます。
ソースコードの後半で、同じクラスから新しいオブジェクト $obj2 を生成しています。これで、クラスを使った2つのオブジェクトができました。関数と何が違うの?と疑問をもたれる方もいるでしょう。最後のコードを見てください。最初のオブジェクトの内容がちゃんと残っていて、2つのオブジェクトを同時に使えることが解ります。関数は、シリーズにしか使えませんが、クラスは同時に繰り返し使用することができるのです。

PHPでのクラス例 ソースコード

<?php    
/* クラスとオブジェクトを理解する */
// クラス定義 
class test_class {
    //プロパティの初期化
    var $var0 = "変数の初期化";
    //クラスがインスタント化されたとき実行されるメソッド
    function test_class(){
        //プロパティを表示
        echo 'オブジェクトから呼ばれる$this->var0 は、"';
        echo $this->var0;
        echo '"<br>';
        //プロパティ
        $this->var1 = "クラス内で定義した変数";
        //プロパティ
        $this->var_infunc = "クラス内のメソッドで使う変数";
    }
    //メソッド
    function in_class() {
        //関数内のプロパティを表示
        echo 'オブジェクトから呼ばれる$this->var_infunc は、"';
        echo $this->var_infunc;
        echo '"<br>';
    }
}

/* クラスを利用する */
echo 'クラスをインスタンスし化しオブジェクト生成<br>';
$obj = new test_class();
echo '<br>';

echo 'プロパティを変更し';
$obj->var0="初期化変数を変更";
echo 'メソッドを実行<br>';
$obj->test_class();
echo '<br>';

echo 'クラスメソッド内で定義した変数を表示<br>';
echo 'オブジェクトのプロパティ$obj->var1 は、"';
echo $obj->var1 ;
echo '"<br>';
echo '<br>';

echo 'オブジェクトからメソッドを実行<br>';
$obj->in_class();
echo '<br>';

echo 'プロパティ変更し';
$obj->var_infunc = "1つ目のオブジェクトでメソッドの変数変更" ;
echo 'メソッドを実行<br>';
$obj->in_class() ;
echo '<br>';

echo '2つ目のクラスを使ったオブジェクトを生成<br>';
$obj2 = new test_class();
echo '<br>';

echo '2つ目のオブジェクトのプロパティ変更し';
$obj2->var_infunc = "2つ目のオブジェクトでメソッドの変数変更" ;
echo 'メソッドを実行<br>';
$obj2->in_class() ;
echo '<br>';

echo '1つ目のオブジェクトが残っていることを確認<br>';
$obj->in_class() ;
?>

上記のソースコードの実行結果は、次をクリックすれば確認できます。
サンプル: PHPでのクラス例のサンプル

オブジェクト指向

「オブジェクト指向」とう言葉をよく目にすると思いますが、解りやすく言えば、オブジェクトのかたまりとして、プログラムを構成することです。一般的には、クラスとその継承(親クラスのメソッドを引き継ぐ子クラスを発生させる)の仕組みを利用することのようです。

PR amazon

author

サイト管理人:パワーデジット
管理人への連絡フォーム

スポンサード リンク

このページは 

トップページ > HP作成基礎 > クラス