首页 > 代码库 > php面向对象(一)---2017-04-17

php面向对象(一)---2017-04-17

重点:定义类与实例化类;访问修饰符;构造函数

一、面向对象

面向对于与面向过程的主要区别在于:前者包含类和对象的概念   

二、类和对象   

1、类是由众多对象抽象(归纳总结)出来的东西  代表所有对象的特性

2、对象是由累实例化出来的东西  具有自己的特点 真实存在的    一切皆对象

3、定义类

       class 加类名(首字母大写){}

 eg:

class Ren

{

 var $name;      ----成员变量

 var $age;

 function eat()   -----成员方法或函数

 {

        }

}

4、实例化  (因为类是抽象的,不能直接用)

 $r = new Ren();  -------实例化一个人

 $r ->name = "张三";   ---------调用成员变量

 $r->age = 1;

 $r->eat();  ---------调用成员方法

  $r1 = new Ren();-------实例化第二个人

  $r2 = new Ren();-------实例化第三个人

5、访问修饰符  非常重要   ( 成员变量一般都是private,成员方法一般都是public

(1)public  公开的

class Ren

{

 public $name;

 public $age;

 public function eat()  

{

        }

}

(2)protected  受保护的   只能在该类和该类的子类里访问

(3)private 私有的  只能在该类访问

class Ren

{

 private $name;    

private $age=2;

 public function eat()  

{

 echo $this->age;          --- this代表该对象(谁调用ear()就代表该对象);不是该类

        }

}

$r = new Ren();

三、构造函数无论写不写都存在,不写只是看不到而已)

用于初始化变量   默认为public

1、  特点

(1)写法特殊

     function 类名(){}      -----------以前用的,现在用也没错

     function__construct(){}     ------------现在用的

(2)执行时间特殊   -----------在实例化时就执行

Eg1:

class Ren

{

private $sex="男"; 

function __construct()

 {

        $this->sex;

        }             

 public function eat()  

{

        }

}

$r = new Ren();

$r->eat();

Eg2:带参数

class Ren

{

private $sex; 

function __construct($s)

 {

        $this->sex=$s;

        }             

 public function eat()  

{

        }

}

$r = new Ren(“女”);  

$r->eat();

 

php面向对象(一)---2017-04-17