首页 > 代码库 > PHP面向对象
PHP面向对象
PHP面向对象
面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计):
是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成,OOP达到了软件工程的三 个目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。
对象的概念:
对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象 的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组 服务的封装体。客观世界是由对象和对象之间的联系组成的。
类的概念:
类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。
如何抽出一个类:
class 类名 { }
例子:
class 人 { 成员属性:姓名、性别、年龄、身高、体重、电话、家庭住址 成员方法:可以开车, 会说英语, 可以使用电脑 }
class Person { // 下面是人的成员属性 var $name; //人的名子 var $sex; //人的性别 var $age; //人的年龄 // 下面是人的成员方法 function FANGFA() { return; } }
计算矩形面积:
class 矩形 { // 矩形的属性 矩形的长; 矩形的宽; // 矩形的方法 矩形的周长; 矩形的面积; }
实例:
class Rect { var $kuan; var $gao; function zhouChang() { 计算矩形的周长; } function mianJi() { 计算矩形的面积; } }
如何实例化对象: 对象名称 = new 类名称();
class Person { //下面是人的成员属性 var $name; //人的名字 var $sex; //人的性别 var $age; //人的年龄 //下面是人的成员方法 function say() { //这个人可以说话的方法 echo "这个人在说话"; } function run() { //这个人可以走路的方法 echo "这个人在走路"; } } $p1=new Person(); $p2=new Person(); $p3=new Person();
使用对象:
对象->属性 $p1->name; $p2->age; $p3->sex;
对象->方法 $p1->say(); $p2->run();
$p1->name = "张三"; //属性对象 $p1->sex = "男"; $p1->age = 20;
$p2->say(); //方法对象 $p2->run();
this对象的使用:
在对象的内部,让对象里的方法访问本对象的属性, 或是对象中的方法去调用本对象的其它方法。
$this->属性: $this->name; $this->age; $this->sex;
$this->方法 :$this->say(); $this->run();
实例:
class Person { var $name; var $sex; var $age; // 定义一个构造方法参数为私有的属性姓名$name、性别$sex和年龄$age进行赋值 function __construct($name, $sex, $age) { // 通过构造方法传进来的$name给私有成员属性$this->name赋初使值 $this->name = $name; // 通过构造方法传进来的$sex给私有成员属性$this->sex赋初使值 $this->sex = $sex; // 通过构造方法传进来的$age给私有成员属性$this->age赋初使值 $this->age = $age; } // 这个人可以说话的方法, 说出自己的私有属性,在这里也可以访问私有方法 function say() { echo "我的名子叫:" . $this->name . " 性别:" . $this->sex . " 我的年龄是:" . $this->age; } } // 通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄 $p1 = new Person("张三", "男", 20); $p2 = new Person("李四", "女", 30); $p3 = new Person("王五", "男", 40); // 下面访问$p1对象中的说话方法 $p1->say(); // 下面访问$p2对象中的说话方法 $p2->say(); // 下面访问$p3对象中的说话方法 $p3->say();
PHP面向对象