php面向对象及特征
2016-06-18 23:41
441 查看
OOA :分析 OOD
:设计 OOP:编程
什么是对象?
万物皆对象
类:类是对象的抽象,对象是类的实例,类是具有相同属性和行为的一组对象的集合
类(Class)是用来描述一个对象(Object):
类描述了每个对象应包括的数据
类描述了每个对象的行为特征
创建类:
PHP 中使用关键字
class 来定义一个类。类的命名一般使用首字符大写,而后每个单词首字符大写连接的方式方便阅读。
class Person{
public $id; //序号
public $name; //姓名
public $birth; //生日
public $sex; //性别
}
类中的一个成员变量由如下部分组成:
访问修饰符。可以是public、private或protected
成员变量名称。成员变量名称必须是一个有效的标识符,后面用分号结束。
类由属性和行为组成
面向对象的三大特征
1 封装
2 继承
3 多态
封装:把对象的属性和行为(类)结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节
所有的函数和方法都是封装,类也是封装(封装的是行为和属性)访问修饰符:public private protected也是封装
优点:
1 信息隐蔽,封装即是隐藏。
2 封装的原则在软件上反映的是:要求使对象以外的部分不能随意取对象的内部数据(属性),从而有效的避免了外部错误对它的“交叉感染”,使软件错误能够局部化,大大减少查错和排错的难度。
类的封装带来的优点:隐藏类的实现细节,让使用者只能通过事先定义好的方法来访问数据,可以方便的加入逻辑控制,进行数据检查,限制对属性的不合理操作。便于修改增强代码的可维护性。
什么是继承?
继承:(传承/扩展)
继承是面向对象最重要的特点之一,就是可以实现对类的复用。
PHP是单继承的,一个类只可以继承一个父亲,但一个父亲却可以被多个子类所继承。
继承: 扩展父类的内容,注意只能继承public和protected修饰的内容,而private修饰的则不能继承
关键字: extends
PHP中继承是单继承,即extends后面只能有1个类名;但是1个类可以有无数个子类
子类和父类只能出现在有继承关系的2个类之间
面向对象编程---重写
在子类中出现和父类同名的方法,称为重写
行为的重新定义
重写只能发生在有继承关系的类之间,方法名称相同即重写,与参数没有关系
重写时,访问修饰符的可以访问范围不能低于父类中的访问修饰符
对于private修饰对的方法不能重写
如果从父类继承的方法不能满足子类的需求,
this 代表其所在当前对象
Parent::的追溯不仅于直接父亲(如果在直接的父类中没有出现重写的方法,它会向上查找与自己同名的方法)
面向对象——多态(“变态”-变化的形态)
接口(interface):是抽象方法和静态常量定义的集合。
接口是一种特殊的抽象类,这种抽象类中只包含抽象方法和静态常量(不能改变的量)。
接口中没有其它类型的内容。
接口的定义
Interface 接口名{
public function getName();
}
在接口中的抽象方法只能是public,默认也是public权限。并且不能设置成private或者protected类型
接口:它是一个特殊的类,但是名称变成了interface
在接口中定义的只能是公共的抽象方法(没有函数体部分),也可以有静态常量
接口采用的插件式配置,可以随意的匹配任意一个类
类可以实现(implements)接口,实现的接口可以有无数个
当1个类实现了接口后,该接口的所有方法必须在该类中实现
接口:提供行为的规范
关键字:
Final:最终的、最后的
final 关键字,意思是终态的,最后的
它可以修饰函数方法,被修饰的函数方法不能被重写
final可以修饰类class,但修饰的类不能被继承
类当中的属性不能被final修饰
eg:
class
AA{
private
$num;
public final function
test(){
echo
'测试代码';
}
public function
test2(){
echo
'测试代码2';
}
}
static 静态的
它可以修饰属性变量,也可以修饰函数方法
静态资源的加载和普通的非静态资源的加载是不一样的
在非静态方法中可以调用静态方法,但是反过来就不行
静态static修饰的内容被创建不需要有对象存在,同时它们是被放置在静态区域当中
静态资源的标准访问方式是===>类名::静态资源名称
eg:
class
AAA{
public static
$num;
public function
__construct(){
$this->ceshi();
}
public function
teststatic(){
// $this->ceshi();
echo
'我是非静态的函数方法 ';
}
public function
jiafa(){
AAA::$num++;
}
public static function
ceshi(){
// echo '我是静态的函数方法 ';
// $this->teststatic();
}
}
$aaa
= new
AAA();
$aaa->jiafa();
$aaa
= null;
echo
'第一次输出'.AAA::$num;
echo
'<br><br>';
$aaa2
= new
AAA();
$aaa2->jiafa();
echo
'第二次输出'.AAA::$num;
//AAA::ceshi();
//$aaa = new AAA();
//$aaa->ceshi();
method_exists:检查类是否存在
区别:
Require();
Require_once();
Include();
Include_once();
:设计 OOP:编程
什么是对象?
万物皆对象
类:类是对象的抽象,对象是类的实例,类是具有相同属性和行为的一组对象的集合
类(Class)是用来描述一个对象(Object):
类描述了每个对象应包括的数据
类描述了每个对象的行为特征
创建类:
PHP 中使用关键字
class 来定义一个类。类的命名一般使用首字符大写,而后每个单词首字符大写连接的方式方便阅读。
class Person{
public $id; //序号
public $name; //姓名
public $birth; //生日
public $sex; //性别
}
类中的一个成员变量由如下部分组成:
访问修饰符。可以是public、private或protected
成员变量名称。成员变量名称必须是一个有效的标识符,后面用分号结束。
类由属性和行为组成
面向对象的三大特征
1 封装
2 继承
3 多态
封装:把对象的属性和行为(类)结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节
所有的函数和方法都是封装,类也是封装(封装的是行为和属性)访问修饰符:public private protected也是封装
优点:
1 信息隐蔽,封装即是隐藏。
2 封装的原则在软件上反映的是:要求使对象以外的部分不能随意取对象的内部数据(属性),从而有效的避免了外部错误对它的“交叉感染”,使软件错误能够局部化,大大减少查错和排错的难度。
类的封装带来的优点:隐藏类的实现细节,让使用者只能通过事先定义好的方法来访问数据,可以方便的加入逻辑控制,进行数据检查,限制对属性的不合理操作。便于修改增强代码的可维护性。
什么是继承?
继承:(传承/扩展)
继承是面向对象最重要的特点之一,就是可以实现对类的复用。
PHP是单继承的,一个类只可以继承一个父亲,但一个父亲却可以被多个子类所继承。
继承: 扩展父类的内容,注意只能继承public和protected修饰的内容,而private修饰的则不能继承
关键字: extends
PHP中继承是单继承,即extends后面只能有1个类名;但是1个类可以有无数个子类
子类和父类只能出现在有继承关系的2个类之间
面向对象编程---重写
在子类中出现和父类同名的方法,称为重写
行为的重新定义
重写只能发生在有继承关系的类之间,方法名称相同即重写,与参数没有关系
重写时,访问修饰符的可以访问范围不能低于父类中的访问修饰符
对于private修饰对的方法不能重写
如果从父类继承的方法不能满足子类的需求,
this 代表其所在当前对象
Parent::的追溯不仅于直接父亲(如果在直接的父类中没有出现重写的方法,它会向上查找与自己同名的方法)
面向对象——多态(“变态”-变化的形态)
接口(interface):是抽象方法和静态常量定义的集合。
接口是一种特殊的抽象类,这种抽象类中只包含抽象方法和静态常量(不能改变的量)。
接口中没有其它类型的内容。
接口的定义
Interface 接口名{
public function getName();
}
在接口中的抽象方法只能是public,默认也是public权限。并且不能设置成private或者protected类型
接口:它是一个特殊的类,但是名称变成了interface
在接口中定义的只能是公共的抽象方法(没有函数体部分),也可以有静态常量
接口采用的插件式配置,可以随意的匹配任意一个类
类可以实现(implements)接口,实现的接口可以有无数个
当1个类实现了接口后,该接口的所有方法必须在该类中实现
接口:提供行为的规范
关键字:
Final:最终的、最后的
final 关键字,意思是终态的,最后的
它可以修饰函数方法,被修饰的函数方法不能被重写
final可以修饰类class,但修饰的类不能被继承
类当中的属性不能被final修饰
eg:
class
AA{
private
$num;
public final function
test(){
echo
'测试代码';
}
public function
test2(){
echo
'测试代码2';
}
}
static 静态的
它可以修饰属性变量,也可以修饰函数方法
静态资源的加载和普通的非静态资源的加载是不一样的
在非静态方法中可以调用静态方法,但是反过来就不行
静态static修饰的内容被创建不需要有对象存在,同时它们是被放置在静态区域当中
静态资源的标准访问方式是===>类名::静态资源名称
eg:
class
AAA{
public static
$num;
public function
__construct(){
$this->ceshi();
}
public function
teststatic(){
// $this->ceshi();
echo
'我是非静态的函数方法 ';
}
public function
jiafa(){
AAA::$num++;
}
public static function
ceshi(){
// echo '我是静态的函数方法 ';
// $this->teststatic();
}
}
$aaa
= new
AAA();
$aaa->jiafa();
$aaa
= null;
echo
'第一次输出'.AAA::$num;
echo
'<br><br>';
$aaa2
= new
AAA();
$aaa2->jiafa();
echo
'第二次输出'.AAA::$num;
//AAA::ceshi();
//$aaa = new AAA();
//$aaa->ceshi();
method_exists:检查类是否存在
区别:
Require();
Require_once();
Include();
Include_once();
相关文章推荐
- PHP面向对象编程 对象的基本概念 PHP面向对象的基本实践 PHP面向对象的高级实践 PHP面向对象的特殊实践
- ThinkPHP框架基础3
- TP框架基础2
- php魔术方法
- 解决vsftpd 530 Permission denied
- PHP操作MySQL
- PHP模拟post登陆
- php中oop中的三个重要特性
- php面向对象简单的概述
- php批量sql删除
- PHP大批量插入数据库的3种方法和速度对比
- PHP把数据库数据导入Excel
- Minor【 PHP框架】3.路由、控制器、视图
- php中异常处理方法
- PHP小常识分享
- PHP小常识分享
- Ftp服务器、 Samba服务器、NFS服务器的区别
- Yii 2.0 Widget的编写
- php中的final与staic
- php中extends和implements的区别