zoukankan      html  css  js  c++  java
  • 2016/3/21 面向对象: ①定义类 ②实例化对象 ③$this关键字 ④构造函数 ⑤析构函数 ⑥封装 ⑦继承

    一:定义类   二:实例化对象

     1 //定义类
     2 class Ren
     3     {
     4         var $name;
     5         var $sex;
     6         var $age;
     7         
     8         function Say()
     9         {
    10             echo "{$this->name}在说话";
    11         }
    12     }
    13 //实例化对象
    14 $Ren = new Ren();
    15 //调用对象的成员:
    16     $Ren->name = "张三";
    17     $Ren->Say();

    显示结果:

    三:$this关键字

    $this->name;  this代表该对象,如果要在成员方法中调用成员变量,一定要使用$this找出该成员变量

    四:构造函数:

    ①html5以前,构造函数名必须与类型相同

    ②执行时间特殊,最早执行,作用成员变量初始化

    无参:

    1 function __construct()
    2         {
    3               echo "空参构造函数";
    4         }

    有参:

    1 function __construct($n,$s,$a)
    2         {
    3             $this->name = $n;
    4             $this->sex = $s;
    5             $this->age = $a;
    6         }

    五:析构函数:

    1 function __destruct()
    2         {
    3             echo "析构函数作用断开连接销毁释放空间";
    4         }

    六:封装:private   set  get 

    成员变量 定义访问修饰符 直接把var去掉  换public private protect

    将类里面的成员变量加一个private修饰符变成私有的,目的是为了保护类里面的成员不被外界随意访问,从而确保类的安全性。将变量设置为私有,如何去访问:

    ①自己写函数get函数set函数,然后来对变量赋值和取值
    ②用系统自带的__get()函数和__set()函数来实现类里面的变量赋值取值

    1 function __set($name,$value)
    2         {
    3             $this->$name = $value;
    4         }
    5     function __get($name)
    6         {
    7             return $this->$name;
    8         }

    七:继承

    继承一般是单继承:一个儿子只能有一个父亲

    ①子类可以继承父类的所有成员
    ②子类可以对父类的成员方法进行重写:(函数名一样)

       要在子类方法中调用父类的方法,用parent::Say();

    1 function Say()
    2         {
    3             parent::Say();
    4             
    5             echo "hello";
    6         }

    final关键字可以定义类为最终类,不可被继承。

     静态:关键字:static 

     如果成员声明了为静态的,那么该成员是属于该类的,不是属于对象的

    1 //如何调用静态的成员:
    2 AA::$height = 10;
    3     
    4 //用类名加双冒号调用类的静态成员
    5 AA::Hao();
     1 //面向对象
     2 class Ren
     3 {    private $sex;
     4     private $name; 
     5     //方法 访问成员变量的方法
     6     private $age;//封装用private 
     7     //封装:访问成员变量的方法
     8     public function SetAge($age)
     9     {
    10         if($age>18 && $age<80)
    11         {
    12             $this->age=$age;
    13         }
    14     }
    15      //成员变量 定义访问修饰符 直接把var去掉  换public
    16     //封装:简便方法赋值
    17     public function __set($name,$value)
    18     {    if ($name=="age") 
    19         {
    20           if ($value>18 && $value<80) 
    21           {
    22               $this->$name=$value;
    23           }
    24         }
    25     else{
    26         $this->$name=$value;
    27         }
    28     }
    29     //封装:简便方法获取值
    30     public function __get($name)
    31     {
    32         return $this->$name;
    33     }
    34     
    35 
    36     public function Say() //成员方法
    37     {
    38          echo $this->name."这个人在讲话";
    39     }
    40     
    41     //1,构造函数,写法特殊,必须与类名相同  2,执行时间特殊 最早执行  作用成员变量初始化
    42     function __construct($name,$sex)
    43     {
    44         $this->name=$name;
    45         $this->sex=$sex;
    46     }
    47     //2,析构函数:对象销毁时自动用  用来释放内存,关闭连接等
    48     function __destruct()
    49     {
    50         echo "该对象马上销毁";
    51     }    
    52 }    
    53 //继承
    54 class Student extends Ren
    55 {
    56     public $class;
    57     //父类方法的扩展和重写  
    58     function Say()
    59     {   parent::Say();//调用父类中的方法
    60         echo "子类方法";
    61     }
    62 }
  • 相关阅读:
    请问,如何在windows系统下面同时使用中文和英文的cmd?_百度知道
    boost计算随机数和计算crc32简单示例
    使用 boost 进行 CRC32 校验
    常见的Hash算法
    省了一笔钱,关点被爱国者无线硬盘打动入手了
    夏新大V二代,外型不错,屏幕偏小,电池偏小,质感上还可以提升两个level,把整个品味提一提,再把价格降到999,内置软件上再下点功夫就不错了
    藏红花
    我来自台湾:普力600 消毒锭_普力-600 消毒片PL-600 SH-XT-K礼盒小套组_易迅发现_易迅网
    我来自台湾:普力600 消毒锭_普力-600 消毒片PL-600 SH-XT-K礼盒小套组_易迅发现_易迅网
    中继联通chinaunicom热点。求路由推荐。-无线路由器-中国无线论坛
  • 原文地址:https://www.cnblogs.com/haodayikeshu/p/5302624.html
Copyright © 2011-2022 走看看