首頁 後端開發 php教程 PHP中的物件導向實踐-基本實作案例

PHP中的物件導向實踐-基本實作案例

May 21, 2020 pm 05:44 PM
物件導向

PHP中的物件導向實踐-基本實踐

(一)、基本實作

一、類別的概念

PHP中的物件導向實踐-基本實作案例

一、共同點:

#都有相同的屬性

##都有相同的方法

二、不同點:

具體的值是不一樣的

三、總結:他們都是一類的物件

說到類,現在來說說類別的概念

1)   類別定義

-我們說物以類聚,人以群分,把具有相似特性的物件歸類到一個類別中

所以我們去看物件的時候,試著去對比他們的屬性和方法,如果他們的屬性和方法都很相似,我們就可以把他們歸到一類

 -類別定義了這些相似的物件都擁有相同的屬性和方法

範例:一個NBA球員就是一個類別的定義,它規定了只要是一個NBA球員,它一定會具有:年齡,姓名,身高,體重,所在球隊,球員號碼

然後他們也會具有相同的技能:

PHP中的物件導向實踐-基本實作案例

但是問題是,這個類別裡面有定義具體的身高嗎,有具體的姓名嗎,有具體的體重嗎,都沒有,但是如果我們把這些屬性都寫上去以後,是不是就是成為了具體的一個物件

這就是類別和物件的關係,具體點就是,類別是相似物件的描述,這個稱之為類別的定義,類別是所有這些相似物件的藍圖或原型

#例如詹姆斯這個物件怎麼來的,就是把這個類別的屬性值設定好就可以了

類別的物件就是類別的一個

實例(Instance)<strong></strong>,這個操作也叫做類別的實例化

例如詹姆斯,喬丹,Kobe都是NBA球員這個類別的實例,實例的他們的這個過程就叫做類別的實例化

類別我們可以了解為,它就是一個空架子,它只是定義了物件怎麼分,而物件的話它就定義了,具體的值,必須要把所有的屬性值都寫具體才行

補充一個概念:我們將類別的物件和方法統稱為類別成員

二、實例化的概念

1)    類別的實例化定義

就是透過類別創造一個具體的對象,這個過程就是類別的實例化,相當於就是把這個空架子填滿

 舉例:例如透過NBA球員這個類別我們創建了詹姆斯,Kobe ,喬丹,這其中就是把這個NBA球員類別實例了3次

PHP中的物件導向實踐-基本實作案例

總結:類別只有一個,但是它可以被多次實例化,得到多個具體的物件

Tip:具體怎麼實現,我們之後會在程式碼裡進行具體的演示

#2)類別的實例化

2) 舉例:以喬丹為例

PHP中的物件導向實踐-基本實作案例

左邊是類,沒有數據,右邊是喬丹,那麼要實例化它怎麼實例化呢,就是直接把這些姓名,身高,體重,所在球隊,球員號碼這些值填入具體,那麼喬丹這個物件就實例出來了

Tip:實例化,可以理解為將類別化作成一個實際的例子

##三、具體案例

1) 案例學習目標

1. 如何定義一個類別

2. 如何實例化一個類別

3. 如何呼叫類別的屬性與方法

2)  具體見以下程式碼

<?php
/***
 * 案例目标:
 *  1.类的定义
 *  2.类的实例化
 *  3.属性的赋值
 *  4.方法的调用
 *  
 */
/***定义一个类,类的名字叫NbaPlayer(中文=NBA球员)
 * 提示:
 *  1.定义类的过程:我们首先以class开始,然后写上类 名称:NbaPlayer,最后要写上一对{}
 *  2.类的名字通常首字母要大写
 *  3
 * 
***/
class NbaPlayer{
    //定义属性
    public $name = "";
    public $height = "";
    public $weight = "";
    public $team = "";
    public $playerName = "";
    //定义方法
    //定义跑的方法
    //提示:
      //方法定义的过程:
        //1.写上方法的类型,public,表示公共的方法,可以被外部直接调用
        //2.写上function
        //3.定义方法的名称,然后写上一对(),最后{}结尾     
    //总结:
        //方法定义和之前js中函数的定义是一样的,只是类中的方法多了一个public
    public function run(){
        //里面的代码我们称之为业务逻辑
        echo "跑步<br/>";
    }
    //定义跳跃方法
    public function jump(){
        echo "跳跃<br/>";
    }
    //定义运球方法
    public function dribble(){
        echo "运球<br/>";
    }
    //定义投篮的方法
    public function shoot(){
        echo "投篮<br/>";
    }
    //定义扣篮方法
    public function dunk(){
        echo "扣篮<br/>";
    }
    //定义传球
    public function pass(){
        echo "传球<br/>";
    }
} 
//类到对象的实例化
/*总结:
    1、类的实例化过程= 通过new 类名() 即可完成一个类的实例化过程
*/
//1.创建乔丹
$jordan = new NbaPlayer();//类的实例化
//类赋值
$jordan->name = "乔丹";
$jordan->height = "1.98米";
$jordan->weight = "98公斤";
$jordan->team = "公牛";
$jordan->playerName = "23";
//输出对象值
print_r("乔丹名称:".$jordan->name."<br/>");
print_r("乔丹身高:".$jordan->height."<br/>");
//总结:通过->可以调用对象里的属性
echo "<br/>";
//输出对象方法
$jordan->dribble();
$jordan->pass();
//总结:通过->符号可以调用对象的方法
?>
登入後複製

以上是PHP中的物件導向實踐-基本實作案例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用Go語言實現物件導向的事件驅動程式設計 如何使用Go語言實現物件導向的事件驅動程式設計 Jul 20, 2023 pm 10:36 PM

如何使用Go語言實現物件導向的事件驅動程式設計引言:物件導向的程式設計範式被廣泛應用於軟體開發中,而事件驅動程式設計是一種常見的程式設計模式,它透過事件的觸發和處理來實現程式的流程控制。本文將介紹如何使用Go語言實現物件導向的事件驅動編程,並提供程式碼範例。一、事件驅動程式設計的概念事件驅動程式設計是一種基於事件和訊息的程式設計模式,它將程式的流程控制轉移到事件的觸發和處理上。在事件驅動

@JsonIdentityInfo註解在Java中使用Jackson的重要性是什麼? @JsonIdentityInfo註解在Java中使用Jackson的重要性是什麼? Sep 23, 2023 am 09:37 AM

當物件在Jackson庫中具有父子關係時,將使用@JsonIdentityInfo註解。 @JsonIdentityInfo 註解 用於在序列化和反序列化過程中指示物件身分。 ObjectIdGenerators.PropertyGenerator是一個抽象佔位符類,用來表示要使用的物件識別碼來自POJO屬性的情況。語法@Target(value={ANNOTATION_TYPE,TYPE,FIELD,METHOD,PARAMETER})@Retention(value=RUNTIME)public

探索Go語言中的物件導向編程 探索Go語言中的物件導向編程 Apr 04, 2024 am 10:39 AM

Go語言支援物件導向編程,透過型別定義和方法關聯實作。它不支援傳統繼承,而是透過組合實現。介面提供了類型間的一致性,允許定義抽象方法。實戰案例展示如何使用OOP管理客戶訊息,包括建立、取得、更新和刪除客戶操作。

PHP高階特性:物件導向程式設計的最佳實踐 PHP高階特性:物件導向程式設計的最佳實踐 Jun 05, 2024 pm 09:39 PM

PHP中OOP最佳實務包括命名約定、介面與抽象類別、繼承與多型、依賴注入。實戰案例包括:使用倉庫模式管理數據,使用策略模式實現排序。

Golang中有類似類別的物件導向特性嗎? Golang中有類似類別的物件導向特性嗎? Mar 19, 2024 pm 02:51 PM

在Golang(Go語言)中並沒有傳統意義上的類別的概念,但它提供了一種稱為結構體的資料類型,透過結構體可以實現類似類別的物件導向特性。在本文中,我們將介紹如何使用結構體實現物件導向的特性,並提供具體的程式碼範例。結構體的定義和使用首先,讓我們來看看結構體的定義和使用方式。在Golang中,結構體可以透過type關鍵字定義,然後在需要的地方使用。結構體中可以包含屬

解析PHP物件導向程式設計中的享元模式 解析PHP物件導向程式設計中的享元模式 Aug 14, 2023 pm 05:25 PM

解析PHP物件導向程式設計中的享元模式在物件導向程式設計中,設計模式是一種常用的軟體設計方法,它可以提高程式碼的可讀性、可維護性和可擴充性。享元模式(Flyweightpattern)是設計模式中的一種,它透過共享物件來降低記憶體的開銷。本文將探討如何在PHP中使用享元模式來提升程式效能。什麼是享元模式?享元模式是一種結構型設計模式,它的目的是在不同物件之間共享相同的

Go語言的物件導向特性解析 Go語言的物件導向特性解析 Apr 04, 2024 am 11:18 AM

Go語言支援物件導向編程,透過struct定義對象,使用指標接收器定義方法,並透過介面實現多態。物件導向特性在Go語言中提供了程式碼重用、可維護性和封裝,但也存在缺乏傳統類別和繼承的概念以及方法簽章強制型別轉換的限制。

PHP物件導向程式設計的深入理解:物件導向程式設計的除錯技巧 PHP物件導向程式設計的深入理解:物件導向程式設計的除錯技巧 Jun 05, 2024 pm 08:50 PM

透過掌握追蹤物件狀態、設定斷點、追蹤異常和利用xdebug擴展,可以有效調試PHP物件導向程式碼。 1.追蹤物件狀態:使用var_dump()和print_r()檢視物件屬性和方法值。 2.設定斷點:在開發環境中設定斷點,偵錯器會在執行到達斷點時暫停,以便檢查物件狀態。 3.追蹤異常:使用try-catch區塊和getTraceAsString()取得異常發生時的堆疊追蹤和訊息。 4.利用偵錯器:xdebug_var_dump()函數可在程式碼執行過程中檢查變數的內容。

See all articles