加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php学习笔记之面向对象

发布时间:2020-12-13 02:08:37 所属栏目:PHP教程 来源:网络整理
导读:《PHP实战:php学习笔记之面向对象》要点: 本文介绍了PHP实战:php学习笔记之面向对象,希望对您有用。如果有疑问,可以联系我们。 PHP实战 public?? 公有的:本类,子类,外部对象都可以调用 protected 受掩护的:本类 子类,可以执行,外部对象不可以调用 pri

《PHP实战:php学习笔记之面向对象》要点:
本文介绍了PHP实战:php学习笔记之面向对象,希望对您有用。如果有疑问,可以联系我们。

PHP实战public?? 公有的:本类,子类,外部对象都可以调用
protected 受掩护的:本类 子类,可以执行,外部对象不可以调用
private 私有的:只能本类执行,子类与外部对象都不可调用
面向对象编程的三大特点

PHP实战1)关闭性

PHP实战封闭性,也可以称为信息暗藏.就是将一个类的使用和实现分开,只保留有限的接口(方法)与外部联系.对于用到该类的开发人员,只要知道这个类如何使用即可,而不用去关心这个类是如何实现的.这样做可以让开发人员更好地把精力集中起来专注别的事情,同时也避免了程序之间的相互依赖而带来的不便.

PHP实战2)承继性

PHP实战继承性就是派生类(子类)自动继承一个或多个基类(父类)中的属性与办法,并可以重写或添加新的属性和办法.继承这个特性简化了对象和类的创建,增加了代码的可重性.继承分单继承和多继承,PHP所支持的是单继承,也就是说,一个子类有且只有一个父类.

PHP实战3)多态性

PHP实战多态性是指同一个类的不同对象,使用同一个办法可以获得不同的结果,这种技术称为多态性.多态性增强了软件的灵活性和重用性.

PHP实战类的界说

PHP实战一个类可以包含有属于自己的常量,变量(称为“属性”)以及函数(称为“办法”).
和很多面向对象的语言一样,PHP也是通过class关键字加类名来定义类的.类的格式如下:

代码如下:

<?php
? Class myobject{
??? //……
}
?>

PHP实战定义:物以类聚,把具有相似特性的对象归到一个类中,类定义了这些相似对象拥有的相同属性和办法.类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型.

PHP实战类的对象称为类的一个实例.要创建一个类的实例,必需使用 new 关键字.
001ZpQGYty6MeYnSNUh25&690

代码如下:

<?php
//类的定义以关键字class开始,类的命名通常以每个单词第一个字母大写
??? class NbaPlayer{
??????? public $name = "Jordan"; //定义属性
??????? public $height = "198cm";
??????? public $team = "Bull";
??????? public $playerNumber = "23";

PHP实战??????? //定义办法
??? public function run(){
??????? echo "Runningn";
??? }
??? public function dribblr(){
??????? echo "Dribblingn";
??? }
??? public function pass(){
??????? echo "Passingn";
??? }
}
??? //类到对象的实例化
??? //类的实例化为对象时使用关键字new,new之后紧跟类的名称和一对括号
??? $jordan = new NbaPlayer();?

PHP实战??? //对象中的属性成员可以通过"->"符号来拜访
??? echo $jordan->name."n";

PHP实战??? //对象中的成员方法可以通过"->"符号来拜访
??? $jordan->dribble();
??? $jordan->run();
?>

PHP实战成员办法

PHP实战类中的函数被称为成员办法.函数和成员办法唯一的区别就是,函数实现的是某个独立的功能,而成员办法是实现类中的一个行为,是类的一部分.
下面就来扩充上面的myobject类,为它添加一个成员办法,代码如下:

代码如下:

<?php
classmyobject{
?? function getobjectname($name){
????? echo "商品名称为:".$name;
?? }
}
?>

PHP实战该办法的作用是输出商品名称,商品名称是通过办法的参数传进来的.
类是一个抽象的描述,是功能相似的一组对象的集合.如果想用到类中的办法和变量,首先就要把它具体落实到一个实体,也就是对象上.

PHP实战类常量
既然有变量,当然也会有常量了.常量便是不会改变的量,是一个恒值.众所周知的一个常量便是圆周率Pi.定义常量使用关键字const如:
ConstPI=3.14159;

PHP实战构造函数

PHP实战PHP 5 允行开发者在一个类中定义一个办法作为构造函数.具有构造函数的类会在每次创建新对象时先调用此办法,所以非常适合在使用对象之前做一些初始化工作.

代码如下:

<?php
//类的定义以关键字class开始,类的命名通常以每个单词第一个字母大写
??? class NbaPlayer{
??????? public $name = "Jordan"; //定义属性
??????? public $height = "198cm";
??????? public $team = "Bull";
??????? public $playerNumber = "23";

PHP实战??????? //构造函数,在对象被实例化的时候自动调用
??????? function __construct($name,$height,$weight,$team){
??????????? echo "It is an? NbaPlayer constructorn";
??????????? $this->name = $name;
??????????? //$this是PHP里面的伪变量,表示对象自身.可以通过$this->的方式拜访对象的属性和方法
??????????? $this->height = $height;
??????????? $this->weight = $weight;
??????????? $this->team = $team;
??????? }

PHP实战??????? //定义办法
??? public function run(){
??????? echo "Runningn";
??? }
??? public function dribblr(){
??????? echo "Dribblingn";
??? }
??? public function pass(){
??????? echo "Passingn";
??? }
}
??? //类到对象的实例化
??? //类的实例化为对象时使用关键字new,new之后紧跟类的名称和一对括号
??? $jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");???

PHP实战??? //对象中的属性成员可以通过"->"符号来拜访
??? echo $jordan->name."n";

PHP实战??? //对象中的成员方法可以通过"->"符号来拜访
??? $jordan->dribble();
??? $jordan->run();

PHP实战??? //每一次用new实例化对象的时候,都会用类名后面的参数列表挪用构造函数
??? $james = new NbaPlayer("James","203cm","120kg","Heat")
??? echo $james->name."n";
?>

PHP实战析构函数

代码如下:

<?php
//类的定义以关键字class开始,类的命名通常以每个单词第一个字母大写
??? class NbaPlayer{
??????? public $name = "Jordan"; //定义属性
??????? public $height = "198cm";
??????? public $team = "Bull";
??????? public $playerNumber = "23";
???????
??????? //构造函数,表示对象自身.可以通过$this->的方式拜访对象的属性和方法
??????????? $this->height = $height;
??????????? $this->weight = $weight;
??????????? $this->team = $team;
??????? }
???????
??????? //析构函数,在程序执行结束的时候会自动调用
??????? //析构函数通常被用于清理程序使用的资源.比如程序使用了打印机,那么可以再析构函数里面释放打印机资源
??????? function __destruct(){
??????????? echo "Destroying".$this->name."n";
??????? }
???????
??????? //定义方法
??? public function run(){
??????? echo "Runningn";
??? }
??? public function dribblr(){
??????? echo "Dribblingn";
??? }
??? public function pass(){
??????? echo "Passingn";
??? }
}
??? //类到对象的实例化
??? //类的实例化为对象时使用关键字new,"Bull");???
???
??? //对象中的属性成员可以通过"->"符号来拜访
??? echo $jordan->name."n";
???
??? //对象中的成员方法可以通过"->"符号来拜访
??? $jordan->dribble();
??? $jordan->run();
???
??? //每一次用new实例化对象的时候,都会用类名后面的参数列表调用构造函数
??? $james = new NbaPlayer("James","Heat")
??? echo $james->name."n";
???
??? //通过把变量设为null,可以触发析构函数的调用
??? //当对象不再使用的时候会触发析构函数
??? $james = null;
??? echo "from now on James will not be used.n"
?>

PHP实战析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行.

PHP实战工具的引用

代码如下:

<?php
//类的定义以关键字class开始,表示对象自身.可以通过$this->的方式拜访对象的属性和方法
??????????? $this->height = $height;
??????????? $this->weight = $weight;
??????????? $this->team = $team;
??????? }

PHP实战??????? //析构函数,在程序执行结束的时候会自动调用
??????? //析构函数通常被用于清理程序使用的资源.好比程序使用了打印机,那么可以再析构函数里面释放打印机资源
??????? function __destruct(){
??????????? echo "Destroying".$this->name."n";
??????? }

PHP实战??????? //定义办法
??? public function run(){
??????? echo "Runningn";
??? }
??? public function dribblr(){
??????? echo "Dribblingn";
??? }
??? public function pass(){
??????? echo "Passingn";
??? }
}
??? //类到对象的实例化
??? //类的实例化为对象时使用关键字new,"Heat")
??? echo $james->name."n";

PHP实战??? //对象的引用用于拜访对象的属性和方法,$james,$james1和$james2都是对象的引用
??? //$james和$james1是对象的两个独立引用
??? //$james2是$james的影子,使用对象的同一个引用,任何一个赋值为null相当于删除了同一个引用
??? $james1 = $james;
??? $james2 = &$james

PHP实战??? $james = null;
??? echo "from now on James will not be used.n"
必修>

《PHP实战:php学习笔记之面向对象》是否对您有启发,欢迎查看更多与《PHP实战:php学习笔记之面向对象》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读