1. 程式人生 > >【php】面向對象(一)

【php】面向對象(一)

打電話 成員方法 駝峰命名 bject 內部 自動 正在 自己 div

1. 學習面向對象的目標:
  a) 語法的學習:
  b) 編程思想的學習:
    i. 過程化:
    ii. 面向對象:
2. 比較(有對象和沒對象的區別)
  a) 沒對象:
    i. 我餓了 自己做飯
    ii. 我渴了 自己燒水
    iii. 衣服臟了 自己去洗衣服
    iv. 空虛寂寞了 自己去玩LOL
  b) 有對象
    i. 我餓了 對象給我去做飯
    ii. 我渴了 對象給我去燒水
    iii. 我衣服臟了 對象給我去洗衣服
    iv. 我空虛寂寞了 對象和我一塊玩LOL遊戲
  c) 面向對象的核心,就是讓對象幫我們去實現指定的功能
3. 對象:具有一定功能和特征的單個事物,稱之為對象
  a) 對象是實際存在的一個事物
4. 類:具有相同功能和特征的對象的抽象,稱之為類
5. 類和對象的關系:
  a) 類的實體化(實例化)就是一個對象
  b) 對象的抽象就是類
6. 類比:
  a) 馬良 馬良畫的畫 從畫中走出來的人
  b) 程序員 類 對象
  c) 設計師 設計的圖紙 由設計稿建造出來的建築
7. 如何來聲明一個類:(相當於正在設計圖紙)
  a) 格式:class 類名{}
  b) 命名:首字母大寫的駝峰命名法進行命名
  c) 標識符命名規則:字母、數字、下劃線,首字母不能為數字,嚴格區分大小寫,且不能使用關鍵字
  d) 聲明成員屬性:
    i. 註意:
      1. 必須給定成員修飾符(Public、Protected、Private)
      2. 成員屬性的默認值(初始值)可以不給
      3. 成員屬性賦初始值時
        a) 不能使用變量賦值
        b) 建議不要使用計算來給成員屬性賦值
        c) 不能使用函數調用方式給成員屬性賦值
      4. 變量的數據類型:
        a) 四種標量:整型、浮點型、字符串型、布爾型
        b) 兩種復合:對象、數組
        c) 兩種特殊:資源、null空
      5. 常量可以存放的數據類型:
        a) 4中標量類型和null空型
  e) 成員方法的聲明:
    i. 註意
      1. 成員方法就是一個函數,在類當中我們稱之為方法
      2. 跟成員屬性的聲明方式類似,成員方法,也需要給定一個成員修飾符(public、protected、private)
      3. 成員方法的參數是可有可無的
      4. 成員方法的返回值和代碼體都是可有可無的!
      5. 函數在我們不指定return的時候,或者說,給定return但是後面沒有值的情況下,返回的結果都是null
  f) 類當中只能存在成員屬性和成員方法,之外的內容都會報錯!
  g) 成員屬性和成員方法的位置不固定,但是建議將成員屬性寫在前面
8. 對象的實例化:
  a) 格式:變量名 =new 類名()

   Object => 變量的類型
   (Meinv) => 類名
    [1] => 在當前腳本當中所實例化對象的索引號

 1 //聲明一個美女類(相當於設計的過程)
 2 class Meinv{
 3     
 4     //特征 => 成員屬性
 5     public $name;
 6     public $sex;
 7     public $age=18;
 8     public $tall;
 9     
10     //功能 => 成員方法
11     public function eat(){
12         echo ‘我正在吃東西!‘;
13     }
14     
15     public function drink(){
16         echo
‘我正在喝東西‘; 17 } 18 19 public function talk($someone){ 20 echo ‘我正在和‘.$someone.‘說話!‘; 21 } 22 } 23 24 //實例化(實體化) 25 $lingling = new Meinv(); 26 27 //成員屬性的操作 28 $lingling->name = ‘玲玲‘; 29 $lingling->sex = ‘女‘; 30 $lingling->age = 20; 31 $lingling->tall = 160.00; 32 33 var_dump
($lingling); 34 35 //結果 36 object(Meinv)[1] 37 public ‘name‘ => string ‘玲玲‘ (length=6) 38 public ‘sex‘ => string ‘女‘ (length=3) 39 public ‘age‘ => int 20 40 public ‘tall‘ => float 160

  b) 註意:
    i. 類名後面的小括號可有可無,但是我們建議加上
    ii. 對象的實例化可以在類的聲明之前,也可以在類的聲明之後
    iii. 成員訪問符: ->

 1 //聲明一個手機類
 2 
 3 class Phone{
 4     
 5     //成員屬性
 6     public $brand;
 7     public $size;
 8     public $color;
 9     
10     //成員方法
11     public function call($someone){
12         echo ‘我正在給‘.$someone.‘打電話<br/>‘;
13     }
14     
15     public function sendMessage($someone){
16         echo ‘我正在給‘.$someone.‘發短信<br/>‘;
17     }
18     
19 }
20 
21 //實例化類
22 $apple = new Phone();
23 
24 //初始化成員屬性信息
25 $apple->brand = ‘蘋果‘;
26 $apple->size = ‘4.7inch‘;
27 $apple->color = ‘紅色‘;
28 
29 //進行成員屬性的操作
30     //成員屬性的添加
31     $apple->price = ‘5799元‘;
32     //成員屬性的刪除
33     // unset($apple->color);
34     //成員屬性的修改
35     $apple->size = ‘5.5inch‘;
36     //成員屬性的訪問
37     echo $apple->brand;        //蘋果
38     echo $apple->size;        //5.5inch
39     echo $apple->price;        //5799元
40     
41 //進行成員方法的操作
42 $apple->call(‘範冰冰‘);        //我正在給範冰冰打電話
43 $apple->sendMessage(‘李冰冰‘);        //我正在給李冰冰發短信

9. $this 特殊的變量
  a) 名字特殊
  b) 只能在類的內部當中的成員方法中使用
  c) $this 代表了正在訪問當前方法的對象
10. 構造方法:
  a) 本質:也是一個成員方法,是一個特殊的成員方法
  b) 名字:__construct、和類名同名的方法都屬於構造方法,我們推薦使用__construct;
  c) 執行場景:當我們實例化一個類時,會自動調用__construct方法
  d) 作用:初始化對象
11. 析構方法:
  a) 本質:也是一個成員方法,是一個特殊的成員方法
  b) 名字:__destruct
  c) 執行場景:當我們對象被銷毀的時候,自動執行

 1 //聲明一個汽車類
 2 class car{
 3     
 4     //成員屬性
 5     public $brand;
 6     public $type;
 7     public $price;
 8     
 9     //成員方法
10     public function __construct($brand,$type,$price){
11         //給成員屬性賦值
12         $this->brand = $brand;
13         $this->type = $type;
14         $this->price = $price;
15         
16         echo $this->brand.‘創建<br/>‘;
17     }
18     
19     public function drive(){
20         echo ‘我正在開車,麽麽噠!!‘;
21     }
22     
23     public function carry($someone){
24         echo ‘我正在載著‘.$someone.‘找女朋友!‘;
25     }
26     
27     //析構方法,當我們的腳本執行完畢時會自動執行
28     public function __destruct(){
29         echo $this->brand.‘銷毀<br/>‘;
30     }
31     
32 }
33 
34 //實例化一個奔馳車
35 $benz = new car(‘奔馳‘,‘越野‘,‘200w‘);
36 
37 $baoma = new car(‘寶馬‘,‘敞篷‘,‘180w‘);
38 
39 //結果
40 奔馳創建
41 寶馬創建
42 寶馬銷毀
43 奔馳銷毀
技術分享

【php】面向對象(一)