您的位置 >>> 星想互联 >>> 编程技术 >>> PHP基础
PHP初级教程一:类的封装和构造方法
点击数:1700  发布时间2017-08-03 10:49:36

在面向对象的思想中最核心的就是对象,为了在程序中创建对象,首先就要定义一个类,类是对象的抽象 ,它用于描述一组对象的共同特征和行为,类中可以定义属性和方法,其中属性用于描述对象的特征,用于描述对象的行为,类的定义语法格式如下:

class 类名{

成员属性 ;

成员方法;

}

在此类中,class定义类的关键字,通过该关键字可以定义一个类,在类中声明的变量被称为成员属性,在类中声明的函数被称为成员方法,下面咸宁网站建设通过一个案例来演示如何定义一个类:

class person{
public $name;
public $age;
public function spk(){
echo $this->name.$this->age;
}
}

对象的创建:

$对象名=new 类名();

如果在创建对象时,不需要传递参数,则可省略括号。例:

$p1=new person();

$p1->name="hjf";

$p1->age="22";

$p1->spk();


类的封装

在例中定义的person类有二个属性,name和age,在为age和name赋值时,由于没有做限定 ,因此可以赋于任何值,为了防止这种情况出现,应该在设计一个类时,应该对成员变量的访问做出一些限定,不允许外界任意访问,此时就需要实现类的封装。

所谓类的封装,是指在定义一个类时,将类中的属性私有化,即使用private关键字来修饰,私有化的属性只能在它所在的类访问。private,私有修饰符,被定义为private的成员,对于同一个类里的所有成员都是可见的,没有访问限制,但不允许类外部的代码访问,对于该类的子类也是不能访问的。

下面是一个类的封装的实例:

class person{
private $name;
private $age;
public function spk($i,$x){
$this->name=$i;
$this->age=$x;
echo $this->name."
".$this->age;
}
}
$sp1=new person();
$sp1->spk("旺仔","3");

运行结果:

旺仔

3


通过__get()和__set()方法访问私有属性:

PHP5中预定义了__get()和__set()方法,其中__get()方用于获取属性值,__set()方法用于设置属性值 ,这二个方法是自动调用的,下面是__get()和__set()方法的使用案例:


class person{
private $name;
private $age;

public function __get($property_name){
return($this->$property_name);
}

public function __set($property_name,$value){
$this->$property_name=$value;
}
}
$sp1=new person();
$sp1->name="旺仔";
$sp1->age="3";
echo $sp1->name;
echo $sp1->age;

构造方法

实例化一个类的对象后,如果要为这个对象的属性赋值,需要直接访问此对象的属性,如果想要在实例化对象的同时就为这个对象赋值,就要用到构造方法,在每一个类中,都有一个构造方法,在创建对象时会被自动调用,其语法如下,

修饰符 function __construct(参数列表){

初始化操作

}

下面是一个构造方法使用的案例:

class person{
private $name;//私有属性
public $age;//公有属性
function __construct($x,$y){
$this->name=$x;
$this->age=$y;
echo "使用构造方法";
}
function show(){
echo $this->name.$this->age;
}
}

$sp=new person("旺仔",32);
$sp->show();

来源:小雨