老雷PHP课堂之PHP类与对象
一、面向对象概念
1.概念
面向对象(Object Oriented,OO)其是以对象模型为基础进行的抽象过程,并在应用过程中形成了描述自己的抽象概念定义,包括对象、类、封装、继承以及多态等。
2.面向对象的三大特性
1、封装
隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。
2、继承
提高代码复用性;
3、多态
父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。提高了程序的拓展性。
二、类与对象
类通过class声明
对象是类的实例化
class people{ //属性 const constant = '常量'; private $sec="秘密"; public $height=123; protected $age=10; public $weight=64; //构造函数 public function __construct(){ echo "构造函数初始化"; } public function __desctruct(){ echo "虚构函数 收尾"; } protected function age(){ return $this->age; } private function secret(){ return "这是我的秘密"; } public function love(){ return "love food"; } public function say(){ return "say you "; } } class girl extends people{ function aa($a,$b){ $str=parent::age(); return "继承了".$str; } function dd(){ } } $a=new A(); $girl=new girl();
类的元素
属性
常量 const constant = 'constant value'; A::constant;
static 静态属性和方法
构造函数和析构函数 __construct() __destruct exit();
方法
实例化 new A();
继承 extends
三、访问方法
$this->
self::test();
parent::test();
A::static_test();
四、访问控制与关键字
public 公有的 都可访问
private 私有的 不可访问 不可继承
protected 受保护的 不可访问 可继承
//关键字
static 可以直接使用 class::static 不能使用this self::
课后练习
一、写一个留言板的类,实现之前留言板的需求。每个页面写一个方法
class guest{ public function add(){ } public function index(){ } } $a="add"; $guest=new guest(); $guest->$a();
二、写一个名为people的类,属性有 身高(公有),年龄(受保护),秘密(私有),方法有 love (爱好),说话(say)。
写一个girl类,继承people类,增加方法 getAge获取年龄
写一个boy类,继承people类,增加方法wieght获取体重。