
批改狀態(tài):合格
老師批語(yǔ):看來(lái)很喜歡盜墓筆記了, btw, 楊洋演技怎么樣
屬性 | 含義 |
---|---|
class | 類聲明 |
new | 類實(shí)例化 |
public | 公開(kāi)成員,隨處可見(jiàn) |
protected | 受保護(hù)成員,僅在當(dāng)前類或子類中可見(jiàn) |
private | 私有成員, 僅在當(dāng)前類可見(jiàn) |
spl_autoload_register() | 自動(dòng)加載器 |
extends | 類的擴(kuò)展 |
static | 聲明類的靜態(tài)成員 |
$this | 實(shí)例引用 |
self | 類的引用 |
trait | 類功能橫向擴(kuò)展 |
__construct | 構(gòu)造器 1.對(duì)對(duì)象的公共屬性進(jìn)行初始化賦值 2. 記錄當(dāng)前類被實(shí)例化的次數(shù) |
物以類聚,把具有相似特性的對(duì)象對(duì)壘到一個(gè)類中,類定義了這些相似對(duì)象擁有的相同的屬性和方法
類是相似對(duì)象的描述,成為類的定義,是該類對(duì)象的藍(lán)圖或者原型
類的對(duì)象稱為一個(gè)類的實(shí)例(Instance)
類的屬性和方法統(tǒng)稱為類成員
類的實(shí)例化:通過(guò)類定義創(chuàng)建一個(gè)類的對(duì)象
類的定義屬性值都是空或默認(rèn)值,而對(duì)象的屬性都有具體的值
類的定義以關(guān)鍵字class開(kāi)始,后面跟著這個(gè)類的名稱。類的命名通常每個(gè)單詞的第一個(gè)字母大寫,以中括號(hào)開(kāi)始和結(jié)束
類的實(shí)例化為對(duì)象時(shí)使用關(guān)鍵字new,new之后緊跟類的名稱和一對(duì)圓括號(hào)
對(duì)象中得成員屬性和方法可以通過(guò)->符號(hào)來(lái)訪問(wèn)
public 公開(kāi)成員,實(shí)例對(duì)象 用 new 關(guān)鍵字 + 類名稱,在創(chuàng)建好實(shí)例對(duì)象后,可以用用->訪問(wèn)里面的公共成員或者方法
<?php//運(yùn)動(dòng)類class moveMent{ //public 公開(kāi)成員 public $name; //姓名 public $height; //身高 public $weight; //體重 public $age; //性別 public $gender; //年齡}//實(shí)例對(duì)象 用 new 關(guān)鍵字 + 類名稱$ZhanShuai = new moveMent;//在創(chuàng)建好實(shí)例對(duì)象后,可以用用->訪問(wèn)里面的公共成員或者方法$ZhanShuai -> name = "張帥";$ZhanShuai -> height = "170cm";$ZhanShuai -> weight = "55kg";$ZhanShuai -> age = "男";$ZhanShuai -> gender = "23";echo "姓名:" .$ZhanShuai -> name ."<br>";;echo "身高:" .$ZhanShuai -> height."<br>"; ;echo "體重:".$ZhanShuai -> weight."<br>"; ;echo "性別: " .$ZhanShuai -> age."<br>"; ;echo "年齡: " .$ZhanShuai -> gender ."歲"."<br>";
__construct 構(gòu)造器 1.對(duì)對(duì)象的公共屬性進(jìn)行初始化賦值 2. 記錄當(dāng)前類被實(shí)例化的次數(shù)
有構(gòu)造方法時(shí), 類的實(shí)例化必須給構(gòu)造方法傳值,否則會(huì)報(bào)錯(cuò)
給構(gòu)造方法傳遞參數(shù),并且訪問(wèn)類里面成員實(shí)例方法
<?php//①類的聲明/類的實(shí)例化結(jié)果//運(yùn)動(dòng)類class moveMent2{ //public 公開(kāi)成員 public $name; //姓名 //protected 受保護(hù)成員,僅限本類以及子類訪問(wèn) protected $height; //身高 //private 私有成員,僅限本類中的使用. 如何給私有成員賦值 1. 通過(guò)構(gòu)造函數(shù) 2. 通過(guò)魔術(shù)方法 __Set() to be continued.... private $weight; //體重 public $age; //性別 public $gender; //年齡 //__construct 構(gòu)造器 1.對(duì)對(duì)象的公共屬性進(jìn)行初始化賦值 2. 記錄當(dāng)前類被實(shí)例化的次數(shù) public function __construct($name,$height,$weight,$age,$gender) { //特殊的對(duì)象引用$this :代表本對(duì)象 , 完成對(duì)象內(nèi)部成員的訪問(wèn) //使用$this訪問(wèn)類成員初始化賦值 $this->name = $name; $this->height = $height; $this->weight = $weight; $this->age = $age; $this->gender = $gender; } //成員實(shí)例方法 public function movements(){ if ($this->height > 175 && $this->weight < 100) { return "$this->name 適合成為運(yùn)動(dòng)員"; }else { return "$this->name 不適合成為運(yùn)動(dòng)員"; } }}//有構(gòu)造方法時(shí), 類的實(shí)例化必須給構(gòu)造方法傳值//實(shí)例對(duì)象 用 new 關(guān)鍵字 + 類名稱// $zql = new moveMent2;$zql = new moveMent2("張起靈","180","60kg","男","23");$panzi = new movement2("胖子","170","80kg","男","23");//調(diào)用類方法echo $zql->movements() ."<br>";echo $panzi->movements() ;
特殊的對(duì)象引用$this :代表本對(duì)象 , 完成對(duì)象內(nèi)部成員的訪問(wèn),類似指針
//__construct 構(gòu)造器 1.對(duì)對(duì)象的公共屬性進(jìn)行初始化賦值 2. 記錄當(dāng)前類被實(shí)例化的次數(shù) public function __construct($name,$height,$weight,$age,$gender) { //特殊的對(duì)象引用$this :代表本對(duì)象 , 完成對(duì)象內(nèi)部成員的訪問(wèn) //使用$this訪問(wèn)類成員初始化賦值 $this->name = $name; $this->height = $height; $this->weight = $weight; $this->age = $age; $this->gender = $gender; } //成員實(shí)例方法 public function movements(){ if ($this->height > 175 && $this->weight < 100) { return "$this->name 適合成為運(yùn)動(dòng)員"; }else { return "$this->name 不適合成為運(yùn)動(dòng)員"; } }
protected本類中,子類中使用
訪問(wèn)受保護(hù)的成員會(huì)進(jìn)行報(bào)錯(cuò),protected只能在本類中,子類中使用 Fatal error: Uncaught Error: Cannot access protected property moveMent3::$height in
private僅限本類中使用
訪問(wèn)私有成員private也會(huì)進(jìn)行報(bào)錯(cuò),因?yàn)樗接谐蓡T僅限于本類中使用
Fatal error: Uncaught Error: Cannot access private property moveMent3::$weight in
如何給私有成員賦值 1. 通過(guò)構(gòu)造函數(shù) 2. 通過(guò)魔術(shù)方法 __Set() to be continued….
//__construct 構(gòu)造器 public function __construct($height,$weightr) { //特殊的對(duì)象引用$this :代表本對(duì)象 , 完成對(duì)象內(nèi)部成員的訪問(wèn) //使用$this訪問(wèn)類成員初始化賦值 $this->height = $height; $this->weight = $weight; } //成員實(shí)例方法 public function Show(){ echo "我的體重是:$this->weight"."<br>"; echo "我的身高是:$this->height"."<br>"; } $getName = new moveMent3("靚仔","175","55Kg","男","21"); echo $getName->Show();
<?php//類的自動(dòng)加載器spl_autoload_register(function($class){ require $class . ".php";});<?php//spl_autoload_register 注冊(cè)類的自動(dòng)加載器//引入類的自動(dòng)加載器require "1-splauto.php";//建立對(duì)象 類的實(shí)例化$getName = new moveMent3("小龍女","165cm","45kg","女","21歲");//調(diào)用 類成員方法echo $getName->Show();
static 關(guān)鍵字:標(biāo)志靜態(tài)成員(方法,屬性), 靜態(tài)成員只能由類來(lái)調(diào)用, 為所有對(duì)象共享
self:: 靜態(tài)成員與類的實(shí)例無(wú)關(guān) 不能用$this來(lái)訪問(wèn) 用self:: 類的引用 訪問(wèn) 靜態(tài)成員
<?php/** * 類的靜態(tài)成員 * static 關(guān)鍵字:標(biāo)志靜態(tài)成員(方法,屬性), 靜態(tài)成員只能由類來(lái)調(diào)用, 為所有對(duì)象共享 */class mStatic{ //static 靜態(tài)成員 public static $name; public static $wage; public function __construct($name,$wage){ //靜態(tài)成員與類的實(shí)例無(wú)關(guān) 不能用$this來(lái)訪問(wèn) 用self:: 類的引用 訪問(wèn) 靜態(tài)成員 self::$name = $name; self::$wage = $wage; }}//創(chuàng)建對(duì)象 類的實(shí)例化$user = new mStatic("張三",12000);//訪問(wèn)靜態(tài)成員 echo $user::$name." "." ";echo "工資:". $user::$wage;
<?php//物品類class mItems{ //衣服和價(jià)格都是公共成員 public $clothes; public $price; //構(gòu)造器 給成員屬性初始化 public function __construct($clothes,$price) { $this->clothes = $clothes; $this->price = $price; } //公共成員方法 public function Show(){ return $this->clothes."是".$this->price."元"; }}
<?php//繼承物品父類class SumItems extends mItems{ //拓展屬性 私有成員 private $num; //重寫父類魔術(shù)方法 構(gòu)造器 public function __construct($clothes,$price,$num) { //parent關(guān)鍵字 調(diào)用父類的成員方法 parent::__construct($clothes,$price); //初始化子類拓展成員屬性 $this->num = $num; } //重寫父類普通方法 public function Show() { return parent::Show().",庫(kù)存還有:".$this->num."<br>"; } //拓展普通方法 public function Sum() { return "剩余庫(kù)存金額一共:".($this->price * $this->num)."元"."<br>"; }}
//引入文件require "1-splauto.php";//LiLing 實(shí)例化子類$LiLing = new SumItems("lining男衣",198,2000);//調(diào)用對(duì)象LiLing 子類方法 echo $LiLing->Show();echo $LiLing->Sum();
本單元小結(jié) |
---|
類(對(duì)象抽象化的結(jié)果)與對(duì)象 (類實(shí)例化結(jié)果) |
構(gòu)造方法 __construct() |
對(duì)象成員之間的內(nèi)部訪問(wèn) $this |
private 僅限本類中使用 protected 本類中,子類中使用 |
類的自動(dòng)加載 spl_autoload_register(function()) |
靜態(tài)成員的訪問(wèn) 類的引用self:: |
類的繼承 extends 擴(kuò)展 父類方法(魔術(shù)方法,普通方法)的重寫 parent:: 調(diào)用父類成員 |
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)