ホームページ > バックエンド開発 > PHPチュートリアル > PHP オブジェクト指向プログラミング - 基本演習 2 日目

PHP オブジェクト指向プログラミング - 基本演習 2 日目

WBOY
リリース: 2016-07-29 09:15:05
オリジナル
1027 人が閲覧しました

オブジェクト指向 PHP の実践 基本的な実践
高度な実践
特別な実践
クラスの概念
インスタンス化の概念
コンストラクター
デストラクター
データ アクセス

オブジェクト 参照の概念 クラスの概念
PHP オブジェクト指向 <br> プログラミング - 基礎演習 2 日目PHP面向<strong>いいね</strong>? 羽の鳥は群れをなし、似た特徴を持つものをまとめます<br> オブジェクト <br> はクラス <strong> に分類されますか? クラスは、これらの類似した </strong> オブジェクト <br> が持つ同じプロパティとメソッド <strong> を定義し、クラスの定義と呼ばれます。そのクラスのオブジェクト </strong> ブループリントまたはプロトタイプ <br>? クラスの <strong> オブジェクト </strong> はクラスのインスタンスと呼ばれます。 // クラスはフレームを描画し、 <strong> オブジェクト </strong> がフレームを埋めます <br>?クラスは総称してクラスメンバーと呼ばれます<strong>例</strong>? NBA プレーヤーはクラス定義 (クラス定義) です<strong>? ジョーダン、ジェームス、コービーはクラス (インスタンス) と呼ばれます</strong> NBA プレーヤー<br> + 名前<br> + 身長<br> + 体重<br> +チーム<br>+選手番号<br>-- ----------<br>+ランニング()<br>+ジャンプ()<br>+ドリブル()<br>+シュート()<br>+ダンク()<br>+パス()<br>クラスのインスタンス化 <br><br><画像を 2 枚挿入><br><br><img src=

PHP オブジェクト指向 </p> プログラミング - 基本演習 2 日目

PHP面向<strong> </strong>ケース</p>クラスとクラスのインスタンス化のケース<p>? クラス<img src=对象的实例化 //类的实例化为对象时使用关键字new,new之后紧跟这类的名称和一对括号 $jordan = new NbaPlayer(); //对象中的属性成员可以通过->符号来访问 echo $jordan->name."\n"; //对象中的成员方法可以通过->符号来访问 $jordan->dribble(); $jordan->pass(); ?>

出力:
NbaPlayerコンストラクター内Jordanドリブル
パス
NbaPlayerコンストラクター内
James

203cm

120kg
Heat
6

デストラクター
<?php 
date_default_timezone_set("PRC");

//类的定义以关键字class开始,后面跟着这个类的名称。类的命名通常每个单词的第一个字母大写。以中括号开始和结束
//定义NbaPlayer类
class NbaPlayer{
	
	//定义属性
	public $name="Jordan"; 
	public $height="198cm";
	public $weight="98kg";
	public $team="Bull";
	public $playerNumber="23";

	//构造函数,在<strong>对象</strong>被实例化的时候自动调用
	function __construct($name,$height,$weight,$team,$playerNumber){ //没有被明确调用,但是也被调用了
		echo "In NbaPlayer Constructor\n";
		$this->name=$name; //$this是PHP里的伪变量,表示<strong>对象</strong>自身。可以通过$this->的方法访问<strong>对象</strong>的属性和方法
		$this->height=$height;
		$this->weight=$weight;
		$this->team=$team;
		$this->playerNumber=$playerNumber; 
	}

	//定义方法
	public function run(){
		echo "Running\n";
	}

	public function jump(){
		echo "Jumping\n";
	}

	public function dribble(){
		echo "Dribbling\n";
	}
	
	public function shoot(){
		echo "Shooting\n";
	}
	
	public function dunk(){
		echo "Dunking\n";
	}
	
	public function pass(){
		echo "Passing\n";
	}
}

//类到<strong>对象</strong>的实例化
//类的实例化为<strong>对象</strong>时使用关键字new,new之后紧跟这类的名称和一对括号
$jordan = new NbaPlayer("Jordan","198cm","98kg","Bull","23");
//<strong>对象</strong>中的属性成员可以通过->符号来访问
echo $jordan->name."\n";
//<strong>对象</strong>中的成员方法可以通过->符号来访问
$jordan->dribble();
$jordan->pass();

//每一次用new实例化<strong>对象</strong>的时候,都会用类名后面的参数列比调用构造函数
$james= new NbaPlayer("James","203cm","120kg","Heat","6");
echo $james->name;
echo $james->height;
echo $james->weight;
echo $james->team;
echo $james->playerNumber;
?>
ログイン後にコピー

出力:

NbaPlayer コンストラクター内
ジョーダン
ドリブル
NbaPlayer コンストラクターでのパス
ジェームズ
ジェームズの破壊
今後、ジェームズは使用されません。
ジョーダンの破壊


オブジェクト

参照の基本概念

オブジェクト
参照の割り当て
://image.codes51.com/Article/ image/20150919/20150919094753_5210.jpg" alt="PHP オブジェクト指向
プログラミング - 基本演習 2 日目">
James は
オブジェクト
です。
$james は
オブジェクト
への参照であり、
オブジェクト
James を直接指します。

$james1 と $james は 2 つの独立した参照です。オブジェクト$james1 の参照は、James の
オブジェクト を直接指します。 $james2 は、
オブジェクトPHP面向<strong>$james (ちょっと大げさですが) を指す </strong>オブジェクト<br>参照であり、James の <strong>オブジェクト</strong> を直接指すわけではありません。 $james2 は、<br>オブジェクト<strong>$james の参照を通じて James の </strong> オブジェクト <strong> を指すようになり、$james と $james1 という 2 つの参照が存在します。 $james2 は $james のイメージです。 </strong>例 1:<br><pre name=<?php date_default_timezone_set("PRC"); //类的定义以关键字class开始,后面跟着这个类的名称。类的命名通常每个单词的第一个字母大写。以中括号开始和结束 //定义NbaPlayer类 class NbaPlayer{ //定义属性 public $name="Jordan"; public $height="198cm"; public $weight="98kg"; public $team="Bull"; public $playerNumber="23"; //构造函数,在<strong>对象</strong>被实例化的时候自动调用 function __construct($name,$height,$weight,$team,$playerNumber){ //没有被明确调用,但是也被调用了 echo "In NbaPlayer Constructor\n"; $this->name=$name; //$this是PHP里的伪变量,表示<strong>对象</strong>自身。可以通过$this->的方法访问<strong>对象</strong>的属性和方法 $this->height=$height; $this->weight=$weight; $this->team=$team; $this->playerNumber=$playerNumber; } //析构函数,在程序执行结束的时候会自动调用 //析构函数通常被用于清理程序使用的资源,比如程序使用了打印机,那么可以在析构函数里面释放打印机资源。 function __destruct(){ echo "Destroying ".$this->name."<br/>"; } //定义方法 public function run(){ echo "Running\n"; } public function jump(){ echo "Jumping\n"; } public function dribble(){ echo "Dribbling\n"; } public function shoot(){ echo "Shooting\n"; } public function dunk(){ echo "Dunking\n"; } public function pass(){ echo "Passing\n"; } } //类到<strong>对象</strong>的实例化 //类的实例化为<strong>对象</strong>时使用关键字new,new之后紧跟这类的名称和一对括号 $jordan = new NbaPlayer("Jordan","198cm","98kg","Bull","23"); //<strong>对象</strong>中的属性成员可以通过->符号来访问 echo $jordan->name."\n"; //<strong>对象</strong>中的成员方法可以通过->符号来访问 $jordan->dribble(); $jordan->pass(); //每一次用new实例化<strong>对象</strong>的时候,都会用类名后面的参数列比调用构造函数 $james= new NbaPlayer("James","203cm","120kg","Heat","6"); echo $james->name; //通过把变量设置为null,可以触发析构函数的调用 $james=null; echo "From now on James will not be used. <br/>"; ?>出力:<strong>NbaPlayer コンストラクター内</strong>ジョーダン<strong>ドリブル</strong>パス<br>NbaPlayer コンストラクター内<strong>ジェームズ</strong>今後、ジェームズは使用されません。<strong>ジェームズを破壊する</strong>ジョーダンを破壊する<strong>例 2:</strong></p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre name="code"><?php date_default_timezone_set("PRC"); //类的定义以关键字class开始,后面跟着这个类的名称。类的命名通常每个单词的第一个字母大写。以中括号开始和结束 //定义NbaPlayer类 class NbaPlayer{ //定义属性 public $name="Jordan"; public $height="198cm"; public $weight="98kg"; public $team="Bull"; public $playerNumber="23"; //构造函数,在<strong>对象</strong>被实例化的时候自动调用 function __construct($name,$height,$weight,$team,$playerNumber){ //没有被明确调用,但是也被调用了 echo "In NbaPlayer Constructor\n"; $this->name=$name; //$this是PHP里的伪变量,表示<strong>对象</strong>自身。可以通过$this->的方法访问<strong>对象</strong>的属性和方法 $this->height=$height; $this->weight=$weight; $this->team=$team; $this->playerNumber=$playerNumber; } //析构函数,在程序执行结束的时候会自动调用 //析构函数通常被用于清理程序使用的资源,比如程序使用了打印机,那么可以在析构函数里面释放打印机资源。 function __destruct(){ echo "Destroying ".$this->name."<br/>"; } //定义方法 public function run(){ echo "Running\n"; } public function jump(){ echo "Jumping\n"; } public function dribble(){ echo "Dribbling\n"; } public function shoot(){ echo "Shooting\n"; } public function dunk(){ echo "Dunking\n"; } public function pass(){ echo "Passing\n"; } } //类到<strong>对象</strong>的实例化 //类的实例化为<strong>对象</strong>时使用关键字new,new之后紧跟这类的名称和一对括号 $jordan = new NbaPlayer("Jordan","198cm","98kg","Bull","23"); //<strong>对象</strong>中的属性成员可以通过->符号来访问 echo $jordan->name."\n"; //<strong>对象</strong>中的成员方法可以通过->符号来访问 $jordan->dribble(); $jordan->pass(); //每一次用new实例化<strong>对象</strong>的时候,都会用类名后面的参数列比调用构造函数 $james= new NbaPlayer("James","203cm","120kg","Heat","6"); echo $james->name; //通过把变量设置为null,可以触发析构函数的调用 //当<strong>对象</strong>不会再被使用的时候,会触发析构函数 //james1也是指向new NbaPlayer(); $james1=$james; $james=null; echo "From now on James will not be used. <br/>"; ?>

ログイン後にコピー
出力: でNbaPlayer コンストラクタージョーダンドリブル
パスNbaPlayer コンストラクター内ジェームズジェームズを破壊する今後、ジェームズは使用されません。
ジョーダンを破壊する
以上、PHP オブジェクト指向プログラミング - 基礎演習 DAY 2 の内容を側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート