PHP学习笔记之PHP面向对象(八)
来源:互联网 发布:淘宝多口袋工装休闲裤 编辑:程序博客网 时间:2024/05/16 13:47
常用格式
1.定义类
class name{}
2.创建对象(实例化)
$obj = new name();
3.访问对象中的成员
$obj->attr;
4.const常量
可以在类中定义常量,即不会在类中改变的值.对于从该类实例化的任何对象来说,常量值在这些对象的整个生命周期中都保持不变
echo self::PI;//类内部访问 echo 类名::PI //类外部访问
5.static静态属性与静态方法
使用 static 关键字可以用来标识成员属性,也可以用来标识成员方法,静态成员属于类所有,所以我们在静态方法里,不能使用 $this
来引用静态成员
//定义一个名为Person的类 class Person{ //设置常量attr为"常量" const attr = "常量"; //设置静态变量$name为"aaa"; static $name = "aaa"; //设置公开变量 $age为"18"; public $age = 18; //设置该类的show函数 function show(){ //输出常量attr 必须用 self::attr 的方式 echo self :: attr //输出静态变量$name 也必须用self::$name的方式 echo self :: $name //输出该类的一个公开变量 echo $this -> age; } } //定义$obj为一个Person类 $obj = new Person(); //执行$obj的show()函数 $obj -> show(); //错误的输出常量方式 //echo $obj->attr; //正确的输出常量方式 //echo Person::attr; //输出类的公开变量,直接用->访问 echo $obj->age; //输出类的静态变量 echo $obj::$name; //输出类的所有属性 echo Person;
构造函数和析构函数
构造函数
通常用来对成员属性进行初始化赋值
__construct($name,$age);
析构函数
与构造函数对应的就是析构方法,析构方法允许在销毁一个类之前执行一些操作或完成一些功能,比如说关闭文件,释放结果集等.析构函数不能带有任何参数,其名称必须是
__destruct()
//定义类class Person{ //该类的构造函数 function __construct($name,$age){ $this->name = $name; $this->age = $age; } //该类的show函数 function show(){ echo "姓名:$this->name"."<br>年龄:$this->age"; } //该类的析构函数,造所有操作完成时触发 function __destruct(){ echo "完成"; }}$obj = new Person("abc",18);$obj->show();$obj->show();$obj->show();$obj->show();$obj->show();//最后一个show()执行完之后析构函数会执行$obj->show();
访问修饰符(作用域描述符)
访问修饰符允许开发人员对类的访问进行限制,这是PHP5的新特性
public
公共修饰符
类的成员将没有访问限制,所有的外部成员都可以访问(读写)这个类成员
private
私有修饰符
被修饰为private
的成员,对于同一个类里地所有成员是可见的,即没有访问限制;但对于该类的外部代码是不允许改变甚至读操作,对于该类的子类,也不能访问
protected
保护修饰符
被修饰为protected
的成员不能被该类的外部代码访问.但是对于该类的直接子类有访问权限,可以进行属性,方法的读写操作.被子类继承的protected成员,在子类外部同样不能被访问
class Person{ public $name = "abc"; private $age = 18; protected $a = 123; function show(){ echo $this -> name; echo $this -> age; echo $this -> a; }}$obj = new Person();//public是公开的,外部也可以访问echo $obj -> name;//private是私有的,外部不能访问echo $obj -> age;//protected受保护的,外部不可访问echo $obj -> a;//extends创建person类的子类sonclass Son extends Person{ function show2(){ echo $this -> name; //继承父级私有变量,无法访问 //echo $this -> age; echo $this -> a; }}$son = new Son();$son ->show();
封装
封装就是把对象的属性和行为结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节
继承
面向对象开发方法建立在继承概念的基础上,这种策略提高了代码的重用性。
在PHP中,类继承通过 extends
关键字实现;
继承自其他类的类称为子类(child class 或 subclass)
子类所继承的类称为父类( parent class) 或 基类 (base class)
多态
对象的多态性是指在父类中定义的属性或行为被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在父类及其各个子类中具有不同的语义。
0 0
- PHP学习笔记之PHP面向对象(八)
- 我的php学习笔记(二十一)php的面向对象开发(八)
- php的学习笔记之面向对象(一)
- php的学习笔记之面向对象(二)
- php的学习笔记之面向对象(四)继承
- php的学习笔记之面向对象(六)static
- PHP学习笔记(四)面向对象
- PHP学习笔记--面向对象
- php面向对象学习笔记
- php面向对象学习笔记
- PHP面向对象学习笔记
- 学习PHP面向对象(八) 静态变量的问题
- php学习之五(面向对象)
- PHP之面向对象学习
- php 学习之面向对象
- 【深入PHP 面向对象】读书笔记(八)
- PHP面向对象学习的笔记
- PHP 面向对象学习笔记总结
- js事件绑定
- webService 服务端:加入命名空间+端口
- 52,,,自定义加密算法
- 当前市场主流蓝牙音频SOC
- 414. Third Maximum Number*
- PHP学习笔记之PHP面向对象(八)
- 如何高效的阅读学术论文
- HTML个人资料界面
- 乐刻大数据平台架构实践
- java List集合,迭代器iterator
- iTop4412之ADC驱动开发
- 解决java文件编码和windows7系统(中文版)默认编码冲突所导致的乱码情况
- android四种基本布局之RelativeLayout
- 用Elasticsearch构建电商搜索平台,一个极有代表性的基础技术架构和算法实践案例