面向对象。OOP三大特征:封装,继承,多态。 这个讲的是【封存】

class Ren
{
        private $name;
        private $sex;
        private $age;   //年龄必须在18-50之间
        
        function __constuct($v)
        {
            $this ->sex =$v;
        }
        //魔术方法set
        function __set($n,$v)//可以给成员变量赋值,括号里有两个参数,第一个参数是成员变量的名称,第二个是成员变量的值。
        {
            if($n=="age")
            {
                if($v>=18 && $v<=50)
                {
                    $this->$n = $v;
                }
            }
        
            else
            {
                $this ->$n=$v;
            }
        }
        //魔术方法get
        function __get($n)
        {
            return $this->$n;
        }
        
}

$r=new Ren();

$r-> age =30;

var_dump($r);
class Ren
{
    private $name;
    private $sex;
    private $age; //年龄必须在18-50之间
    
    function __construct($v)
    {
        $this->sex = $v;
    }
    
    
    /*//设置age的值
    function setage($a)
    {
        if($a>=18 && $a<=50)
        {
            $this->age = $a;
        }
    }
    //获取age的值
    function getage()
    {
        return $this->age;
    }*/
    
    function say()
    {    
        echo "hello"; 
    }
    
    //析构方法
    function __destruct()
    {
        echo "这是一个析构方法";
    }
    
    function __tostring()
    {
        return "这个类是人类";
    }
    
    
}

$r = new Ren("");

$r->setage(20);
echo $r->getage();

$r->say();


var_dump($r);
class Ren
{
    private $name;
    private $sex;
    
    function __construct($v)
    {
        $this->sex = $v;
    }
    
    
    //设置age的值
    function setage($a)
    {
        if($a>=18 && $a<=50)
        {
            $this->age = $a;
        }
    }
    //获取age的值
    function getage()
    {
        return $this->age;
    }
    
    function say()
    {    
        echo "hello"; 
    }
    
    //析构方法
    function __destruct()
    {
        echo "这是一个析构方法";
    }
    
    function __tostring()
    {
        return "这个类是人类";
    }
    
    
}

$r = new Ren("");


$r->say();


var_dump($r);
//构造方法:写法特殊,执行时间特殊

//OOP三大特性:封装,继承,多态

//封装的目的:为了让类更安全
//封装的做法:
//1.类里面的成员变量做为private
//2.使用成员方法来间接访问成员变量
//3.在该方法里面加限制条件

//php类里面不允许出现同名方法
函数重载 PHP不能用!!
//
函数重载 //在类里面写多个同名方法来实现不同功能 public string Show() { return "显示"; } public string Show(string a) { return a+"显示"; } public string Show(string a,string b) { return a+b+"显示"; } public string Show(int b) { return b+"数字"; }
//1.函数名必须相同
//2.参数个数不同或参数类型不同

//例子:计算器

$a = 10;
$b = 5;

$jia = $a+$b;
$jian = $a-$b;
$cheng = $a*$b;
$chu = $a/$b;


class jisuan
{
    public $a;
    public $b;
    
    function __construct($n,$m)
    {
        $this->a = $n;
        $this->b = $m;
    }
    
    function jia()
    {
        return $this->a+$this->b;
    }
    function jian()
    {
        return $this->a-$this->b;
    }
    function cheng()
    {
        return $this->a*$this->b;
    }
    function chu()
    {
        return $this->a/$this->b;
    }
    function quyu()
    {
        return $this->a%$this->b;
    }
}

$j = new jisuan(10,5);
$j->quyu();
//例子:求两个圆之间的阴影面积
$maxr = 20;
$minr = 10;
$mj = 3.14*$maxr*$maxr - 3.14*$minr*$minr;


class Yuan
{
    //代表半径
    public $r;
    
    function __construct($n)
    {
        $this->r = $n;
    }
    
    //求面积的方法
    function MJ()
    {
        return 3.14*$this->r*$this->r;
    }
}

$r1 = new Yuan(20);
$r2 = new Yuan(10);

$mianji = $r1->MJ()-$r2->MJ();

 

posted @ 2016-10-24 17:53  遇事稳坐钓鱼台  阅读(217)  评论(0编辑  收藏  举报