zoukankan      html  css  js  c++  java
  • PHP面向对象

     1 //面向对象
     2 //面向过程
     3 //$a = 10;
     4 //$b = 15;
     5 //echo $a+$b;
     6 
     7 //面向对象
     8 //1.什么叫做对象
     9 //一切皆为对象
    10 //2.什么叫做类
    11 //由众多对象的抽象
    12 
    13 //做类
    14 class Ren
    15 {
    16     //通过变量和方法来描述人类的特征
    17     
    18     //成员变量
    19     public $name;
    20     public $sex;
    21     
    22     //构造方法
    23     function __construct($n)
    24     {
    25         //$sex = $n; //错误
    26         //$this关键字,在类里面代表该对象
    27         $this->sex =$n; //正确
    28     }
    29
    //魔术方法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;
        }
        
        /*//设置age的值
        function setage($a)
        {
            if($a>=18 && $a<=50)
            {
                $this->age = $a;
            }
        }
        //获取age的值
        function getage()
        {
            return $this->age;
        }*/
    30     //成员方法
    31     public function Speak()
    32     {
    33         echo "正在讲话";
    34     }
    //析构方法
        function __destruct()
        {
            echo "这是一个析构方法";
        }
        
        function __tostring()
        {
            return "这个类是人类";
        }
    
    
    
    35 }
    36 
    37 $r = new Ren("男"); //实例化对象
    38 var_dump($r);
    39 
    40 $r1 = new Ren("女");
    41 var_dump($r1);
    42 
    43 //构造方法,始终存在,如果不写也是存在的
    44 
    45 //var_dump($r);
    46 //$r->name = "李四"; //赋值
    47 //echo $r->name; //取值
    48 //var_dump($r);
    49 //$r->Speak();
    50 //$r1 = new Ren(); //实例化对象
    51 //$r1->name = "数据";
    52 
    53 //var_dump($r==$r1);
    54
    //$r->age = 30;
    
    //echo $r->age;
    
    //$r->__get("age");
    
    //$r->__set("age",20);
    55
      1 //构造方法:写法特殊,执行时间特殊
      2 
      3 //OOP三大特性:封装,继承,多态
      4 
      5 //封装的目的:为了让类更安全
      6 //封装的做法:
      7 //1.类里面的成员变量做为private
      8 //2.使用成员方法来间接访问成员变量
      9 //3.在该方法里面加限制条件
     10 
     11 //php类里面不允许出现同名方法
     12 
     13 //函数重载
     14 //在类里面写多个同名方法来实现不同功能
     15 /*public string Show()
     16 {
     17     return "显示";
     18 }
     19 public string Show(string a)
     20 {
     21     return a+"显示";
     22 }
     23 public string Show(string a,string b)
     24 {
     25     return a+b+"显示";
     26 }
     27 public string Show(int b)
     28 {
     29     return b+"数字";
     30 }*/
     31 
     32 //1.函数名必须相同
     33 //2.参数个数不同或参数类型不同
     34 
     35 //例子:求两个圆之间的阴影面积
     36 /*$maxr = 20;
     37 $minr = 10;
     38 $mj = 3.14*$maxr*$maxr - 3.14*$minr*$minr;
     39 
     40 
     41 class Yuan
     42 {
     43     //代表半径
     44     public $r;
     45     
     46     function __construct($n)
     47     {
     48         $this->r = $n;
     49     }
     50     
     51     //求面积的方法
     52     function MJ()
     53     {
     54         return 3.14*$this->r*$this->r;
     55     }
     56 }
     57 
     58 $r1 = new Yuan(20);
     59 $r2 = new Yuan(10);
     60 
     61 $mianji = $r1->MJ()-$r2->MJ();*/
     62 
     63 //例子:计算器
     64 
     65 $a = 10;
     66 $b = 5;
     67 
     68 $jia = $a+$b;
     69 $jian = $a-$b;
     70 $cheng = $a*$b;
     71 $chu = $a/$b;
     72 
     73 
     74 class jisuan
     75 {
     76     public $a;
     77     public $b;
     78     
     79     function __construct($n,$m)
     80     {
     81         $this->a = $n;
     82         $this->b = $m;
     83     }
     84     
     85     function jia()
     86     {
     87         return $this->a+$this->b;
     88     }
     89     function jian()
     90     {
     91         return $this->a-$this->b;
     92     }
     93     function cheng()
     94     {
     95         return $this->a*$this->b;
     96     }
     97     function chu()
     98     {
     99         return $this->a/$this->b;
    100     }
    101     function quyu()
    102     {
    103         return $this->a%$this->b;
    104     }
    105 }
    106 
    107 $j = new jisuan(10,5);
    108 $j->quyu();
    56 //访问修饰符
    57 //public:代表公有的,在任何地方都可以访问
    58 //protected:代表受保护的,只能在该类或该类的子类中访问
    59 //private:代表私有的,只能在该类中访问
  • 相关阅读:
    odoo12安装Wkhtmltopdf打印出pdf已损坏
    odoo10实现单点登陆绕过登陆集成页面
    odoo添加顶部按钮实现自定义方法
    odoo t标签用法
    C#编写dll进行sql server数据库扩展储存过程
    小程序生成二维码(使用binarywang封装的微信工具包)
    -bash: ./start.sh: /bin/sh^M: bad interpreter: No such file or directory 错误解决方案
    过滤器跟拦截器的区别
    mybatis-DATE_FORMAT() 时间格式化,所对应的时间格式
    解决 MyBatis-Plus 更新对象无法设空值
  • 原文地址:https://www.cnblogs.com/The-second/p/5992051.html
Copyright © 2011-2022 走看看