老雷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获取体重。