php语言中的面向对象

面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。下面小编要给大家讲述的是php语言中的面向对象,欢迎阅读,更多详情请关注应届毕业生考试网。

public   公有的:本类,子类,外部对象都可以调用

protected 受保护的:本类 子类,可以执行,外部对象不可以调用

private 私有的:只能本类执行,子类与外部对象都不可调用

面向对象编程的三大特点

1)封闭性

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

2)继承性

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

3)多态性

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

类的定义

一个类可以包含有属于自己的常量,变量(称为“属性”)以及函数(称为“方法”)。

和很多面向对象的语言一样,PHP也是通过class关键字加类名来定义类的。类的格式如下:

代码如下:

Class myobject{

//……

}

?>

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

类的对象称为类的一个实例。要创建一个类的实例,必须使用 new 关键字。

001ZpQGYty6MeYnSNUh25&690

代码如下:

//类的定义以关键字class开始,类的命名通常以每个单词第一个字母大写

class NbaPlayer{

public $name = "Jordan"; //定义属性

public $height = "198cm";

public $team = "Bull";

public $playerNumber = "23";

//定义方法

public function run(){

echo "Running\n";

}

public function dribblr(){

echo "Dribbling\n";

}

public function pass(){

echo "Passing\n";

}

}

//类到对象的实例化

//类的实例化为对象时使用关键字new,new之后紧跟类的名称和一对括号

$jordan = new NbaPlayer();

//对象中的属性成员可以通过"->"符号来访问

echo $jordan->name."\n";

//对象中的成员方法可以通过"->"符号来访问

$jordan->dribble();

$jordan->run();

?>

成员方法

类中的函数被称为成员方法。函数和成员方法唯一的区别就是,函数实现的是某个独立的功能,而成员方法是实现类中的一个行为,是类的一部分。

下面就来扩充上面的myobject类,为它添加一个成员方法,代码如下:

代码如下:

classmyobject{

function getobjectname($name){

echo "商品名称为:".$name;

}

}

?>

该方法的作用是输出商品名称,商品名称是通过方法的参数传进来的。

类是一个抽象的描述,是功能相似的一组对象的集合。如果想用到类中的方法和变量,首先就要把它具体落实到一个实体,也就是对象上。

类常量

既然有变量,当然也会有常量了。常量就是不会改变的量,是一个恒值。众所周知的一个常量就是圆周率Pi。定义常量使用关键字const如:

ConstPI=3.14159;

构造函数

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

代码如下:

//类的定义以关键字class开始,类的命名通常以每个单词第一个字母大写

class NbaPlayer{

public $name = "Jordan"; //定义属性

public $height = "198cm";

public $team = "Bull";

public $playerNumber = "23";

//构造函数,在对象被实例化的时候自动调用

function __construct($name,$height,$weight,$team){

echo "It is an  NbaPlayer constructor\n";

$this->name = $name;

//$this是PHP里面的伪变量,表示对象自身。可以通过$this->的方式访问对象的属性和方法

$this->height = $height;

$this->weight = $weight;

$this->team = $team;

}

//定义方法

public function run(){

echo "Running\n";

}

public function dribblr(){

echo "Dribbling\n";

}

public function pass(){

echo "Passing\n";

}

}

//类到对象的实例化

//类的实例化为对象时使用关键字new,new之后紧跟类的名称和一对括号

$jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");

//对象中的属性成员可以通过"->"符号来访问

echo $jordan->name."\n";

//对象中的成员方法可以通过"->"符号来访问

$jordan->dribble();

$jordan->run();

//每一次用new实例化对象的时候,都会用类名后面的参数列表调用构造函数

$james = new NbaPlayer("James","203cm","120kg","Heat")

echo $james->name."\n";

?>

析构函数

代码如下:

//类的定义以关键字class开始,类的命名通常以每个单词第一个字母大写

class NbaPlayer{

public $name = "Jordan"; //定义属性

public $height = "198cm";

public $team = "Bull";

public $playerNumber = "23";

//构造函数,在对象被实例化的时候自动调用

function __construct($name,$height,$weight,$team){

echo "It is an  NbaPlayer constructor\n";

$this->name = $name;

//$this是PHP里面的伪变量,表示对象自身。可以通过$this->的方式访问对象的属性和方法

$this->height = $height;

$this->weight = $weight;

$this->team = $team;

}

//析构函数,在程序执行结束的时候会自动调用

//析构函数通常被用于清理程序使用的资源。比如程序使用了打印机,那么可以再析构函数里面释放打印机资源

function __destruct(){

echo "Destroying".$this->name."\n";

}

//定义方法

public function run(){

echo "Running\n";

}

public function dribblr(){

echo "Dribbling\n";

}

public function pass(){

echo "Passing\n";

}

}

//类到对象的实例化

//类的实例化为对象时使用关键字new,new之后紧跟类的名称和一对括号

$jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");

//对象中的`属性成员可以通过"->"符号来访问

echo $jordan->name."\n";

//对象中的成员方法可以通过"->"符号来访问

$jordan->dribble();

$jordan->run();

//每一次用new实例化对象的时候,都会用类名后面的参数列表调用构造函数

$james = new NbaPlayer("James","203cm","120kg","Heat")

echo $james->name."\n";

//通过把变量设为null,可以触发析构函数的调用

//当对象不再使用的时候会触发析构函数

$james = null;

echo "from now on James will not be used.\n"

?>

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

对象的引用

代码如下:

//类的定义以关键字class开始,类的命名通常以每个单词第一个字母大写

class NbaPlayer{

public $name = "Jordan"; //定义属性

public $height = "198cm";

public $team = "Bull";

public $playerNumber = "23";

//构造函数,在对象被实例化的时候自动调用

function __construct($name,$height,$weight,$team){

echo "It is an  NbaPlayer constructor\n";

$this->name = $name;

//$this是PHP里面的伪变量,表示对象自身。可以通过$this->的方式访问对象的属性和方法

$this->height = $height;

$this->weight = $weight;

$this->team = $team;

}

//析构函数,在程序执行结束的时候会自动调用

//析构函数通常被用于清理程序使用的资源。比如程序使用了打印机,那么可以再析构函数里面释放打印机资源

function __destruct(){

echo "Destroying".$this->name."\n";

}

//定义方法

public function run(){

echo "Running\n";

}

public function dribblr(){

echo "Dribbling\n";

}

public function pass(){

echo "Passing\n";

}

}

//类到对象的实例化

//类的实例化为对象时使用关键字new,new之后紧跟类的名称和一对括号

$jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");

//对象中的属性成员可以通过"->"符号来访问

echo $jordan->name."\n";

//对象中的成员方法可以通过"->"符号来访问

$jordan->dribble();

$jordan->run();

//每一次用new实例化对象的时候,都会用类名后面的参数列表调用构造函数

$james = new NbaPlayer("James","203cm","120kg","Heat")

echo $james->name."\n";

//对象的引用用于访问对象的属性和方法,$james,$james1和$james2都是对象的引用

//$james和$james1是对象的两个独立引用

//$james2是$james的影子,使用对象的同一个引用,任何一个赋值为null相当于删除了同一个引用

$james1 = $james;

$james2 = &$james

$james = null;

echo "from now on James will not be used.\n"

?>

php语言中的符号,php语言中的面向对象相关推荐

  1. c语言坐标打符号,c语言中特殊符号

    c语言中特殊符号: 教你用输入法打出任意特殊符号,缺失:c语言中3248/9 最近老有人问我这个符号怎么打,那个符号怎么打. 我每次回答的都是,你要打的是特殊符号,这种特殊符号不能用输入法打出来,需要 ...

  2. html语言表格标记符号,html标记中哪个标记表示表格

    html标记中,哪个标记表示表格 HTML 中表格标记和单元格标记分别是什么 HTML里表格的标签是什么? 和 单元格的标签是什么? 表格的宽度可以用百分比和哪两种单位来设置? 答:另一种用实际尺寸单 ...

  3. lisp语言画地物符号_LISP语言在CAD工程制图中的应用_谢威

    科技信息 一 . 引言 LISP ( List Processor ) 程序语言是由 Autodesk 公司开发的一种程序 语言 . AutoCAD 软件包中包含大多数用于产生图形 . 处理图形的命令 ...

  4. c语言中常用符号,C语言中常用的符号.doc

    1.按位与运算 ①概念 "按位与"运算符"&"是双目运算符,其功能是将参与运算两数的各对应二进位相与.只能对应的两个二进位均为1时,结果位才为1,否则为 ...

  5. c语言转义字符空格符号,C语言 转义符\t占用几个空格

    这个问题,在你学习编程过程中可能会考虑到,有时为了字节对齐而使用转义符中\t,但是到底\t占用几个空格呢? 下面我们首先通过程序来体验下,然后在总结 #include int main() { pri ...

  6. html中输入 符号,HTML中特殊符号

    C#中的@符号用法 C#中的@符号其实有很多的用法,我们来看看@有什么神奇之处. 1.限定字符串 用 @ 符号加在字符串前面表示其中的转义字符"不"被处理. 如果我们写一个文件的路 ...

  7. oracle sql 符号,Oracle的SQL语句中如何处理‘’符号

    Oracle的SQL语句中如何处理'&'符号 在Oracle中,如果在sql中出现'&'符号,会被自动转义: 而被要求输入在&符号后跟随的字符串的值,例如: update ta ...

  8. java正则提取字符串中的符号汉字数字字母

    提取字符串中的符号 /*** 提取字符串中的所有符号* @param str* @return*/public static String getSymbol (String str) {String ...

  9. latex±号_latex中数学符号

    latex中数学符号: 常见数学中的特殊符号,缺失:latex中符号3610/9Α α alpha alfa 阿耳法 Β β beta beta 贝塔 Γ γ gamma gamma 伽马 Δ δ d ...

最新文章

  1. [HNOI 2014]画框
  2. 个人网站建设要避开这些“通病”
  3. UOJ #455 [UER #8]雪灾与外卖 (贪心、模拟费用流)
  4. 【Linux网络编程】并发服务器之多线程模型
  5. 大数开方(C++版)
  6. 数字图像处理实验6图像编码
  7. 并发编程总结一,进程
  8. iframe 实现网页本页显示
  9. linux获取cpu数量函数,Linux上获取CPU Core个数的实现
  10. 安装biztalk2006后导致QuickStartV20不正常
  11. 车辆工程计算机发展前景,车辆工程专业就业方向有哪些 就业前景怎么样
  12. 马蜂窝ABTest多层分流系统的设计与实现
  13. 微信开发者平台切换企微账号与企业微信小程序模式
  14. 开发者工具的暖心提示语
  15. 照片背景底色更换工具二(python+flask网页版源码及打包)
  16. 计算机地质模拟,地质过程计算机模拟.ppt
  17. SDHC(高容量SD存储卡)
  18. Mac 下隐藏显示文件夹的快捷键
  19. 小程序入门教程之微信-03-脚本编程
  20. 天馈频谱分析仪 具备哪些功能

热门文章

  1. 力扣(LeetCode)个人主页draw()方法怎么画出好看图案? // 使用函数 draw 绘制图形,反斜杠 “\“ 请使用 “\\“ 转义
  2. twitter_如何找回旧的Twitter网站
  3. 基于HTML家乡旅游主题项目的设计与实现——少林寺(5页)HTML+CSSS
  4. c语言 运行出现错误代码,运行出现 debug error
  5. 笔记本简单使用eNSP的云连接外网
  6. 混合波束成形| 部分连接系统 :Hybrid Precoding for mmWave Massive MIMO Systems With Partially-Connected Structure
  7. 【Django】Django 的员工信息系统
  8. css中@media写法在ie 、firefox、Opera、Chrome、Safari 浏览器中的支持
  9. USB-IF BC1.2充电协议解读
  10. 关于android 电池的一些实用性探讨