zoukankan      html  css  js  c++  java
  • 面向对象。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();
  • 相关阅读:
    数据结构之查找算法总结笔记
    html的a链接的href怎样才另起一个页面
    深入理解CSS中的空白符和换行
    CSS文本方向
    alert()与console.log()的区别
    CSS旧版flex及兼容
    Java:类与继承
    Java中只有按值传递,没有按引用传递!
    String作为方法参数传递 与 引用传递
    Java:按值传递还是按引用传递详细解说
  • 原文地址:https://www.cnblogs.com/zc290987034/p/5993940.html
Copyright © 2011-2022 走看看