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

一、面向对象

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

二、类和对象  

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();

05-11 10:54