php定义一个学生类_php 之 类,对象

--恢复内容结束---

一、类和对象:

1.定义:

对象:我们所见到的东西都可以称之为对象,是类实例化出来的东西

类:是对所有的同类对象抽象出来的东西

eg: 在一张表中记录了全班同学的学号,姓名,性别等信息,这张表可以称为类,而每个学生的具体信息则是对象。

2. 定义类:

class 类名称   //这里一般默认类的名称首字母大写

{

成员变量;

成员函数

}

eg:  class Ren

{

var $name;   //成员变量,一般不要赋值

var $age;

var $height;

var $sex;

function Run()  //成员函数,又叫成员方法,是来完成对象的一些行为

{

echo "这个人正在奔跑";

}

}

3. 使用类:

3.1 实例化对象:

$r = new Ren()

3.2 给成员变量赋值,调用成员变量

$r->name='张三';    //给对象name赋值

$r->name;    //调取name的值

4. 调用成员方法:

$r->Run();   //执行成员方法

5. 访问修饰符:

种类:1. public  公有的。

2. protected  受保护的。只能在这个累和他的子类里使用

3. private  私有的。只能在这个类里使用,他的子类也无法使用

注意:a.   如果加访问修饰符,要去掉var

eg:

class Ren

{

public  $name;   //成员变量,一般不要赋值

protected $age;

private  $height;

var $sex;

}

echo $r->$name;

echo $r->$age;

echo $r->$height;

echo $r->$sex;

这时的$name $sex 可以调用,$age,$height 是无法调用的.

因为对象不属于类,类只能在{}内使用

b.  如果不加访问修饰符,默认是公有的

6. $this引用

$this 代表该对象(哪个对象调用代表哪个),不是代表类。专门用来完成对象内部成员之间的访问。

class Ren

{

var $name;

var $age;

var $height;

var $sex;

function Run()

{

echo "这个人正在奔跑";

}

function Say()

{

echo  $this->name."在说话";  //在方法Say()中,使用$this 访问name

$this->Run();   //也可以在Say()中调用另一个方法 Run()

}

}

$r=new Ren();

$r->name="张三";

$r->Say();

输出结果为:

7. 构造函数/构造方法:

1.写法特殊:写法固定不变   function __construct()

function后加空格和两个下划线

2. 执行特殊:在造对象时直接执行,无需调用

3. 作用:对对象执行初始化操作

class Ren

{

public $Name;//成员变量,一般不要赋值

protected $age;

private $height;

var $sex;

function __construct($s)         //构造函数,原来的还在执行,可以添加自己的东西

{

$this->sex=$a;                     //初始化sex的值

}

}

$r=new Ren("男");

echo $r->sex="女";

输出结果为:女

8. 析构函数:

在对象销毁前执行

function __destruct()

{

echo "该对象销毁了!";

}

9. 面向对象的三大特征:封装性,继承性,多态性

封装性:

9.1 目的:让类更加安全,不让外界直接访问类里面的成员变量

9.2 做法:1.把成员变量做成私有的,private

2. 做一个方法来实现变量的取值或赋值,在方法里加限制条件 SetAge,GetAge

class Ren

{

private $Name;

private $age;

private $sex;

function __destruct($s)

{

echo $this->sex=$a;

}

function SetAge($a)

{

if($a>10 && $a<50)

{

echo $this->age =$a;

}

}

function GetAge()

{

return $this->age;

}

9.3 SetAge和GetAge

function SetAge($a)      //给age赋值的函数

{

if($a>10 && $a<50)

{

echo $this->age =$a;

}

}

$r=new Ren();

$r->SetAge(40);//输出结果为40

$r->SetAge(100);//超出条件限制,无结果

function GetAge()         //取age的值

{

return $this->age;

}

echo $r->GetAge="30";//输出结果为30,也可以用 echo $r->GetAge=(30);

9.4 使用类里面提供的魔术方法,也可以实现对私有成员的操作

1.function __set()

{

}

eg:

function __set($name,$value)  //对类累里面的私有成员进行赋值,设置参数

{

if($name=="age")

{

//$this->变量名=$value;

if($value>20 && $value<50)

{

echo $this->$name=$value;

}

}

else

{

echo $this->$name=$value;

}

}

$r->__set("name","张三"); //调用function __set()赋值

$r->$name="张三"; //执行该语句会自动调用__set方法

eg:

//$r->name="李四";

//$r->age="40";

//$r->sex="女";

特点::1.自动执行

2.把赋值语句中的变量名作为第一个参数,把变量值作为第二个参数调用__set()方法

2.function __get()

{

}

eg:

function __get($name)   //对类累里面的私有成员进行取值,设置参数

{

return $this->$name;

}

特点:会自动执行,把取值语句中的变量名作为参数调用__get()方法

eg:

$r->name="张三";

$r->sex="男";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值