博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OOP复习笔记
阅读量:7251 次
发布时间:2019-06-29

本文共 2960 字,大约阅读时间需要 9 分钟。

 /*OOP相关的代名词不做讲解*/

OOP的三大特征:

封装 - 继承 - 多态

-----------------------------------目录----------------------------------------

00x1 继承 extends

00x2 封装 private

00x3 静态关键词 static

00x4 Final关键词

00x5 接口

00x6 构造方法&构析方法

00x7 抽象类  详细地址:

00x8 魔术方法(__set,__get,__isset,__unset,) 详细地址:

00x9 switch 

0Ax1 多态 

-------------------------------------------------------------------------------

 

STATIC


 00x1 extends继承 案例一

在第二类声明中使用extends即可对第一个类进行继承。如下所示。

eat(); ?>

  00x2 private封装 案例二

与之相关的还有很多相似的修饰符,比如public var等等。

封装一个属性或者类,在其前面直接加private即可。

调用一个类要用$this->,需要是在类的里面进行调用

name."

"; #在这里使用$this->进行调用name属性。 } private function test2(){ echo "hello world"; }}$a = new Human();$a -> test();$a -> test2(); #该条语句会出错。经过private封装的属性或者类都只能够在类里面自己调用。就好比自己家的老婆只有自己家才可以用一样。 ?>

  00x3 static静态 案例三

 使用static效率会高一些,另外static是定义全局变量。

使用方法:

类名::属性或方法

输出效果如下所示: hello world

 00x4 Final关键词 案例四

final的英译是“最终的”的意思,顾名思义其作用就是不允许子类对父类进行重写。

test(); ?>

会提示如下错误(找不到test方法):

( ! ) Fatal error: Cannot override final method Human::test() in D:\wamp\www\1.php on line 17

 

00x5 接口

接口的声明使用interface

继承接口使用implements

test(); ?>

 

00x6 构造方法&构析方法

构造方法

在程序开始的时候自动调用

"; } function test() { echo "this is a test"; }}$a = new Student();$a ->test(); ?> 输出效果如下所示: hello world  this is a test

构析方法,与构造相反,在程序最后的时候调用。

"; }}$a = new Student();$a ->test(); ?>

00x7 抽象类

抽象类的声明使用:abstract

抽象类的作用可当做全局变量。在抽象类当中不需要有实现的方法,

抽象类还不能实例化,只能够被重写!

hello(); ?>

 00x8 魔术方法

__get:在对象访问私有成员的时候自动被调用 #切记一定要有一个参数!

__set:要修改一个封装属性的时候自动调用

__isset:检测对象是否有具有某个私有成员的时候就会被自动调用!

__unset

 

第一个魔术和方法:__get

name; ?>

第二个魔术方法:__set

name=("王大神"); ?> 输出效果如下所示: hello world

第三个魔术方法:__isset

name = $name; $this->sex = $sex; $this->age = $age; } public function __isset($x) #在使用了isset判断属性存不存在的时候会自动调用该方法 { echo "你想判断我的".$x."属性存在不存在
"; }}$a = new Human("王大牛","男",12);if(isset($a -> sex)){ echo "存在";}else{ echo "不存在";} ?>

第四个魔术方法:__unset

name = $name; $this->sex = $sex; $this->age = $age; } function __unset($x) { echo "成功删除该属性"; }}$a = new Human("郑大牛","男",12);unset($a -> name); ?>

 00x9 switch

100: echo "{$a}大于100"; break; default: echo "抱歉,你输入的可能不是数字!"; break;} ?>

 0Ax1 多态

多态是OOP里三个重要的特征。其他两个是:继承、封装

wide = $wide; $this->high = $high; } public function zhouchang() { echo "矩形的周长是:".($this->wide + $this->high)."
"; } public function mianji() { echo "矩形的面积是:".($this->wide * $this->high)."
"; }}/*** */class yuanxing implements test{ private $r; function __construct($r) { $this->r = $r; } public function zhouchang() { echo "圆形的周长是:".(2 * 3.14 * $this->r."
"); } public function mianji() { echo "圆形的面积是:".(3.14 * $this->r * $this->r."
"); }}$a = new juxing(12,2);$a -> zhouchang();$a -> mianji();$b = new yuanxing(999,666);$b -> zhouchang();$b -> mianji(); ?>

 

转载地址:http://oshbm.baihongyu.com/

你可能感兴趣的文章
python统计ES存储空间占用的代码
查看>>
成就连自己都惊讶的未来
查看>>
依赖倒置(DIP)与依赖注入(DI)
查看>>
mysql数据库授权
查看>>
Microstation
查看>>
深入浅出的英语口语700句zz
查看>>
linux编译安装php
查看>>
再谈奶牛问题
查看>>
第一个java程序------hello world!
查看>>
C#学习安排表
查看>>
在LINUX上创建GIT服务器【转】
查看>>
Linux内核跟踪之trace框架分析【转】
查看>>
XCode v9.6.2017.0830
查看>>
ES不设置副本是非常脆弱的,整个文章告诉了你为什么
查看>>
设置nmon 每天自动收集性能信息
查看>>
python写一段脚本代码自动完成输入(目录下的所有)文件的数据替换(修改数据和替换数据都是输入的)【转】...
查看>>
JVM的内存分配与垃圾回收策略
查看>>
分布式设计与开发(二)------几种必须了解的分布式算法
查看>>
IT高管和易筋经的故事
查看>>
ASP.NET 2.0新控件、管理外观、布局及其它用户体验
查看>>