PHP物件導向的三大特徵操作——封裝、繼承、多態(上)

來源:互聯網
上載者:User

標籤:操作   範圍   his   ons   cti   面向   物件導向   new   circle   

<?php
//三大特徵:封裝、繼承、多態
 //封裝做法:
1.將成員變數變為私人
2.在類中做方法間接操作成員變數
3.在方法裡加控制條件
//封裝目的:使類更加安全
/* class Ren{
    public $name;
    private $age;//將變數變為私人 */

//第一種方式做方法
     public function setage($a){//賦值
        if($a>=18 && $a<=50){
            $this->age = $a;
        }else{
            echo "該年齡不在範圍內";
        }
    }
    public function getage(){//取值
        return $this->age;
    }


   //通用方法間接操作成員變數


    //給變數賦值的魔術方法
     public function __set($k,$v){//做一個函數間接操作
        $this->$k = $v;
    }
    //取變數賦值的魔術方法
    public function __get($k){
        return $this->$k;
    }
}
$s = new Ren();//造的第一個對象

第一種方法的賦值、取值輸出
$s->setage(18);
var_dump($s);
echo $s->getage();


第一種方法的賦值、取值輸出(通用)
//封裝第一種賦值輸出
/* $s->__set("age",20);
var_dump($s); */

//封裝第二種賦值輸出
/* $s->age = 20;
var_dump($s); */

//取值輸出
/* $s->age = 20;
echo $s->age; */

物件導向執行個體

eg:一個大圓裡面含有一個小圓,大圓半徑為10,小圓半徑為5,求大圓減去小圓的面積。

class circle{
    public $r;
    public $area;
    public $cir;
    public function area(){
        return 3.14*$this->r*$this->r;
    }
    public function cir(){
        return 2*3.14*$this->r;
    }
    public function __construct($r){
        $this->r = $r;
    }
    
}
$r1 = new circle(10);//造第一個圓
$r2 = new circle(5);//造第二個圓
$area = $r1->area()-$r2->area();
echo "$area<br>";
$cir = $r1->cir()-$r2->cir();
echo $cir;

?>

PHP物件導向的三大特徵操作——封裝、繼承、多態(上)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.