再來,「貓」是類別,有一隻貓咪叫做「小咪」,而「小咪」就是貓這個類別所產生的物件。但是「小咪」跟「王小明」都是物件,那小咪是人類這個類別嗎?當然不是。
下面就用上面的例子,來寫一個簡單的PHP範例
class Human
{
private $Name;
public function __construct()
{
}
public function setName($inputName)
{
$this->Name = $inputName;
}
public function WhoAreYou()
{
echo "My name is $this->Name";
}
}
$tempHuman = new Human;
$tempHuman->setName("Wang");
$tempHuman->WhoAreYou();
上面的程式碼裡面,我們創造了一個 Human 的類別,並利用這個類別、產生一個暫時的物件 $tempHuman
接著我們把這個物件透過函式 setName 來設定他的名字,接著透過 WhoAreYou 來觀看結果,會看到他輸出一段文字 "My name is Wang"
我們繼續把「貓」跟「小咪」完成
class Cat
{
private $Name;
public function __construct()
{
}
public function setName($inputName)
{
$this->Name = $inputName;
}
public function Jump()
{
echo "[ $this->Name ] jump";
}
}
$tempCat = new Cat;
$tempCat->setName("Kitty");
$tempCat->Jump();
現在我們有 Human 跟 Cat 這兩個類別,並且擁有 $tempHuman 跟 $tempCat 這兩個物件
很明顯,如果我用 $tempHuman 這個物件想要去執行 Cat 這個類別裡面的函式 Jump ,是不行的,因為 $tempHuman 是 Human 這個類別產生的物件,他並不是 Cat 的物件。
物件導向程式設計的概念很多,比較簡單的想法,就是用現實生活中的概念去寫程式,好比上面我寫了一個人類一個貓咪的類別,不同的類別又可以做不同的事情。
你會發現用這樣子的思考方式,很貼近自己的現實世界,會比較容易思考,寫出來的程式也會比較好管理。