面向对象编程基础 (一)
面向过程的基础是一句一句的代码,而面向对象的基础则是对象,对象则由类的实例而来。
类的定义:具有相同的属性定义和行为表现的事物的集合。
类是变量(变的属性)与作用于这些变量的函数(类的方法)的集合,属性与方法是构成类的基础。
1、类的封装
类是变量与作用于变量的函数的集合,那么创建类就离不开变量和函数。
为类添加属性就是向类中加入新的变量,可以使用public、protected和private关键字来定义。使用public修饰的变量可以在类外部被访问,使用protected 和private修饰的变量则不可在类外部被访问。
为类添加方法就是向类中增加函数,调用类的方法就是执行其中的函数。要实现为类添加方法,只需向类中加入新的函数即可。
如果在函数中要引用类本身的属性或方法,这时必须使用伪变量$this加上引用的属性或方法名,才能实现功能。
2、类的继承
通常需要这样一些类,这些类与其他现有的类拥有相同的变量和函数。
通过扩展或派生出来的类拥有基类或父类的所有变量和函数,并包含所有派生类中定义定义的部分。同时,扩充类总是依赖一个单独的基类,也即不支 持多重继承。
语法:class 子类 extends 父类
需要注意的是,使用public和protected修饰的属性和方法可以被子类继承,而使用private修饰的属性和方法则不可以被子类继承。
3、类的重载
一个子类中的属性或方法有时会与它所继承的父类中的属性或方法重名,这时就出现了类的重载。
类的重载实际上是类属性以及类的方法的重载。
当然,在子类中也可以访问父类中的方法,不过要使用self和parent这两个特殊的关键字,它们是用于在类的内部对成员或方法进行访问的。
$this是指向对象实例的一个指针,在实例化的时候来确定指向;
self是指对类本身的一个引用,一般self指向类中的静态变量。形式:self::静态变量名
parent是对父类的引用,一般使用parent来调用父类的构造函数。
4、PHP中与类、对象相关的函数
class_exists()函数 返回类型:布尔值
功能:该函数检查类是否已经定义
get_class_methods()函数 返回类型:数组(全部方法名)
功能:该函数返回由类的方法名组成的数组
get_class_vars()函数 返回类型:数组(类的所有公共属性)
功能:该函数将返回由类的默认公有属性组成的关联数组,形式:varname=>value
get_class()函数 返回类型:字符串
功能:该函数将会返回对象实例所属类的名字
get_declared_classes()函数 返回类型:数组
功能:该函数将会返回由当前脚本中已定义类的名字组成的数组。
get_object_vars()函数 返回类型:数组
功能:该函数返回由对象属性组成的关联数组。
get_parent_class()函数 返回类型:字符串
功能:该函数返回对象或类的父类名。
is_subclass_of()函数 返回类型:布尔值
功能:判断对象与类的关系
method_exists()函数 返回类型:布尔值
功能:该函数检查类的方法是否存在。
转载于:https://www.cnblogs.com/mnhome/p/9846451.html
面向对象编程基础 (一)相关推荐
- [.net 面向对象编程基础] (18) 泛型
[.net 面向对象编程基础] (18) 泛型 上一节我们说到了两种数据类型数组和集合,数组是指包含同一类型的多个元素,集合是指.net中提供数据存储和检索的专用类. 数组使用前需要先指定大小,并且检 ...
- [Java入门笔记] 面向对象编程基础(二):方法详解
2019独角兽企业重金招聘Python工程师标准>>> 什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能 ...
- matlab面向对象排序,matlab面向对象编程基础
matlab面向对象编程基础 觉得有用的话,欢迎一起讨论相互学习~ Matlab面向对象大体结构 类定义的普通模板 代码清单2.1.1 classdef className properties pr ...
- Day08 - 面向对象编程基础
面向对象编程基础 活在当下的程序员应该都听过"面向对象编程"一词,也经常有人问能不能用一句话解释下什么是"面向对象编程",我们先来看看比较正式的说法. 把一组数 ...
- python编程基础是什么-Python面向对象编程基础解析(一)
1.什么是面向对象 面向对象(oop)是一种抽象的方法来理解这个世界,世间万物都可以抽象成一个对象,一切事物都是由对象构成的.应用在编程中,是一种开发程序的方法,它将对象作为程序的基本单元. 2.面向 ...
- [.net 面向对象编程基础] (13) 面向对象三大特性——多态
[.net 面向对象编程基础] (13) 面向对象三大特性--多态 前面两节,我们了解了面向对象的的封装和继承特性,面向对象还有一大特性就是多态.比起前面的封装和继承,多态这个概念不是那么好理解.我们 ...
- Java面向对象编程(基础部分)
面向对象编程(基础部分) 类与对象 01: public class ObjectWorkDemo {public static void main(String[] args){Cat cat1 = ...
- java 168转换成861_java实验-java语言面向对象编程基础
java实验-java语言面向对象编程基础 (12页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 8.90 积分 广州大学学生实验报告广州大学学生实验报告 ...
- java面向对象程序_面向对象编程基础(java)
面向对象编程基础 1.1 面向对象概述 在程序开发初期,大家使用的是结构化开发语言,也就是面向过程(opp),但随着市场需求剧增,软件的规模也越来越大,结构化语言的弊端也暴露出来. 开发周期无休止的拖 ...
- [.net 面向对象编程基础] (22) 事件
[.net 面向对象编程基础] (22) 事件 事件(Event)是学习.net面向对象编程很重要的一部分,在学习事件之前,我们实际上已经在很多地方使用了事件,比如控件的click事件等,这些都是. ...
最新文章
- PIC单片机学习之独立按键
- 微型计算机中的外存储器 现在普遍采用,2010澳门特别行政区全国计算机等级考试二级笔试试卷VB最新考试试题库(完整版)...
- Springboot 原理篇(一)
- 信息学奥赛一本通 1055:判断闰年 | OpenJudge NOI 1.4 17
- Java基础-学习笔记(六)——类的封装性
- 系统管理-第2部分 范围,方法和元素
- Heroku + node.js错误(Web进程在启动后60秒内未能绑定到$ PORT)
- 区块链软件公司:食品溯源+区块链
- 2020-08-21 第一次面试小结
- C语言100ms周期运行时间不够,DEH-系统调研报告.docx
- 值得收藏的5款办公软件,PDF转Word不再头疼
- 整理了一份嵌入式软件工具清单!
- mysql 两表关联查询 group by having
- 微信发送语音功能测试用例
- BinaryFormatter serialization and deserialization are disabled within this application
- PeopleSoft基础知识整理
- 红米K40使用半个月,谈谈上手体验,“优缺点”非常明显!
- 小学三年级另类语文题难住大学副教授(图)
- 经典PID在智能自寻迹小车中的应用分析
- GUVC-S10GD 紫外光传感器 韩国GENICOM光电光传感器纯UV-C监控