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 }
原文地址:https://www.cnblogs.com/haodayikeshu/p/5302624.html