PHP中的面向对象实践
基本实践
高级实践
特殊实践
类的概念
实例化的概念
构造函数
析构函数
数据访问
对象引用的概念
类的概念
对象编程——基本实践DAY 2″>
类
? 物以类聚,把具有相似特性的对象归类到一个类中
? 类定义了这些相似对象拥有的相同的属性和方法
? 类是相似对象的描述,称为类的定义,是该类对象的蓝图或者原型
? 类的对象称为类的一个实例(Instance) //类画了一个框架,对象把框架塞满
? 类的属性和方法统称为类成员
例子
? NBA球员就是一个类的定义(Class Definition)
? 乔丹、詹姆斯、科比称为类的实例(Instance)
NBA球员
+姓名
+身高
+体重
+所在球队
+球员号码
————
+跑步()
+跳跃()
+运球()
+投篮()
+扣篮()
+传球()
类的实例化(instantiate)
对象编程——基本实践DAY 2″>
对象编程——基本实践DAY 2″>
案例
类和类的实例化案例
? 如何定义一个类
? 如何实例化类的对象
? 如何调用类的方法
? 构造函数
? 析构函数
<?php //类的定义以关键字class开始,后面跟着这个类的名称。类的命名通常每个单词的第一个字母大写。以中括号开始和结束//定义NbaPlayer类class NbaPlayer{ //定义属性 public $name="Jordan"; public $height="198cm"; public $weight="98kg"; public $team="Bull"; public $playerNumber="23"; //定义方法 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"; }}//类到对象的实例化//类的实例化为对象时使用关键字new,new之后紧跟这类的名称和一对括号$jordan = new NbaPlayer();(本文来源gaodai#ma#com搞@@代~&码网搞代gaodaima码//对象中的属性成员可以通过->符号来访问echo $jordan->name."\n";//对象中的成员方法可以通过->符号来访问$jordan->dribble();$jordan->pass();?>
Output:
Jordan
Dribbling
Passing
构造函数<?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"; //构造函数,在对象被实例化的时候自动调用 function __construct($name,$height,$weight,$team,$playerNumber){ //没有被明确调用,但是也被调用了 echo "In NbaPlayer Constructor\n"; $this->name=$name; //$this是PHP里的伪变量,表示对象自身。可以通过$this->的方法访问对象的属性和方法 $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"; }}//类到对象的实例化//类的实例化为对象时使用关键字new,new之后紧跟这类的名称和一对括号$jordan = new NbaPlayer("Jordan","198cm","98kg","Bull","23");//对象中的属性成员可以通过->符号来访问echo $jordan->name."\n";//对象中的成员方法可以通过->符号来访问$jordan->dribble();$jordan->pass();//每一次用new实例化对象的时候,都会用类名后面的参数列比调用构造函数$james= new NbaPlayer("James","203cm","120kg","Heat","6");echo $james->name;echo $james->height;echo $james->weight;echo $james->team;echo $james->playerNumber;?>