php(面向对象的基本介绍)
面向对象思想介绍
OOP:Object Oriented Program面向对象编程。
面向对象三大特性
封装 继承 多态
类与对象
类:是用于描述“某一些具有共同特征”的物体的概念,是某一类物体的总称。
对象:是指一个具体的“物体”,该物体隶属于某个“类别”(类)。
对象创建的基本形式
$对象名1 = new 类名(); //对象名就是变量名;类是应该定义过了
类中成员
属性
方法
类常量
方法中$this关键字
$this是一个“伪对象”,代表当前所属类的当前对象。
静态属性
静态属性的使用:
通过特殊的语法:::(双冒号语法,也叫范围解释符)
静态方法
如果在一个方法的前面加上static关键字修饰,则就变成了静态方法。
静态方法同样隶属于类,而不是隶属于具体对象。使用方法跟静态属性类似:
类名::静态方法名();
从理念上,可以认为,静态方法是只隶属于类,而为所有对象所“共有”。
注意
1 $this在静态方法中不能使用。
2 静态方法中不应调用非静态方法。
构造方法
构造方式是类中的一个“特殊”方法,其作用是在实例化一个对象的同时,给该对象的属性赋值,使之一创建完成,就具有了其本身的特有数据(属性值)。
1,该方法名字是固定的,为:__construct();
2,该方法必须是普通方法(不能是静态方法)
3,通常该方法应该是public
4,通常该方法中使用$this这个关键字来对属性进行赋值
5,当new 类名()的时候,其实是在调用该构造方法
6,如果一个类中定义了构造方法,则实例化该类时就会调用该方法,且实例化时的参数需要跟构造方法的参数匹配
析构方法
构造方法是“创建”对象的时候会自动调用。
析构方法是“销毁”对象的时候会自动调用。
系统方法通常用于在销毁对象的时候来“清理数据”(打扫战场)——如果需要,就可以利用这个机会去处理。
通常,php程序结束后,所有对象都会自动销毁(其实属于php内部的垃圾回收机制)
类的继承
继承:一个类从另一个已有的类获得其特性,称为继承。
派生:从一个已有的类产生一个新的类,称为派生。
继承和派生,其实只是从不同的方向(角度)来表述,本质上就是一个事情。
父类/子类:已有类为父类,新建类为子类。父类也叫“基类”,子类也叫“派生类”
单继承:一个类只能从一个上级类继承其特性信息。PHP和大多数面向对象的语言都是单继承模式。C++是多继承。
扩展:在子类中再来定义自己的一些新的特有的特性信息(属性,方法和常量)。没有扩展,继承也就没有意义了
访问(权限)修饰符
在类中的成员,通常都可以在前面加上以下3个修饰符:
public:公共的,共有的,公开的
protected:受保护的
private:私有的,
php(面向对象的基本介绍)的更多相关文章
- java面向对象详细全面介绍
一.面向对象 1.面向过程与面向对象 POP与OOP都是一种思想,面向对象是相对于面向过程而言的.面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做.面向对象,将功能封装进对象,强调具备了功能的 ...
- 面向对象的JavaScript-008-Function介绍
1. // 函数 /* Declare the function 'myFunc' */ function myFunc(theObject) { theObject.brand = "To ...
- js面向对象的笼统介绍
**js进阶大纲**简单的表面组成:**对象的属性分两类,一类是数据属性,一类是访问器属性**1,数据属性用来保存数据.2,访问器属性不用来保存数据,而是定义了get,set两个函数,读取属性时,自动 ...
- 12.1面向对象编程的介绍(oop):封装,继承,多态,访问私有属性
#封装:内部对数据封装.作用:1.保护数据,防止被随意修改:2.使外部的程序不需要关注内部的构造:只需要提供接口给外部进行访问即可.#继承:一个类就相当于一个模板.通过父类,子类的方式实现不同角色的共 ...
- Python基础篇【第7篇】: 面向对象(2)
上一篇<初识面向对象>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公 ...
- boost.asio源码剖析(五) ---- 泛型与面向对象的完美结合
有人说C++是带类的C:有人说C++是面向对象编程语言:有人说C++是面向过程与面向对象结合的语言.类似的评论网上有很多,虽然正确,却片面,是断章取义之言. C++是实践的产物,C++并没有为了成为某 ...
- javascript面向对象(一)
javascript是弱类型,直译式的面相对象编程语言. 在之前我们说过 var a = 123: 在这里a是整数 但是我们可以给a重新复制为 a="你好"; 在这个过程中变量a ...
- Golang 入门系列(五)GO语言中的面向对象
前面讲了很多Go 语言的基础知识,包括go环境的安装,go语言的语法等,感兴趣的朋友可以先看看之前的文章.https://www.cnblogs.com/zhangweizhong/category/ ...
- Java面向对象(Eclipse高级、类与接口作为参数返回值)
面向对象 今日内容介绍 u Eclipse常用快捷键操作 u Eclipse文档注释导出帮助文档 u Eclipse项目的jar包导出与使用jar包 u 不同修饰符混合使用细节 u 辨析何时定义变 ...
随机推荐
- 理解Docker镜像分层
关于base镜像 base 镜像有两层含义: 不依赖其他镜像,从 scratch 构建. 其他镜像可以之为基础进行扩展. 所以,能称作 base 镜像的通常都是各种 Linux 发行版的 Docker ...
- Linux:“awk”命令的妙用
awk是一个强大的文本分析工具,简单来说awk就是把文件逐行读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理. 0.基本用法 awk是一个强大的文本分析工具,简单来说awk就 ...
- ionic android返回键
每次点击返回键只会执行一个事件, 在自定义事件中要控制条件不满足时实行原默认动作. 如果只在一个view中监控, 还需要及时注销事件. http://www.jianshu.com/p/b567cc6 ...
- Windows 7安装Tensorflow
以前是在Cent OS中运行Tensorflow,,经常需要切换操作系统,很不方便,于是决定在Windows 7下安装Tensorflow. 过程还是挺复杂的,需要安装的包括:Visual Studi ...
- http范围请求
基于范围请求 可以实现 断点续传和多线程分片下载 HTTP/1.1之后才支持,需要双端都支持 服务端头信息中有 Accept-Ranges:bytes 表明服务器支持范围请求 curl -I &quo ...
- git主要操作命令
1.创建版本库 (1)初始化一个 Git仓库,使用git init命令 (在相应的本地库目录下执行,将该目录初始化为一个Git库): (2)添加文件到Git仓库,分两步: 第一步,使用命令 git a ...
- iOS 可高度自定义的底部弹框
技术: iOS Objective-C 概述 一个可以让开发者通过编写 tableView 的内容随心所欲的定制自己想要的底部弹框 详细 代码下载:http://www.demodashi.com ...
- lua变量作用域
3.5 – Visibility Rules Lua is a lexically scoped language. The scope of a local variable begins at t ...
- [20170713] 无法访问SQL Server
背景: 朋友的环境第二天突然访问不了SQL Server,远程SQL Server用户无法登陆,但是本地SQL Server用户登录正常. 报错: 用户XX登录失败(MicroSoft SQL Ser ...
- Matlab信号处理基础
一. 简介 离散傅立叶.离散余弦和离散小波变换是图像.音频信号常用基础操作,时域信号转换到不同变换域以后,会导致不同程度的能量集中,信息隐藏利用这个原理在变换域选择适当位置系数进行修改,嵌入信息,并确 ...