PHP面向对象摘要

一、面向对象的三种特性,分别是封装性,继承性和多态性。

1、封装性:封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体的实现细节,这就是封装思想。

2、继承性:继承性主要是描述类与类之间的关系,通过继承,可以在无须重新编写原有类的情况下,对原有类的功能进行拓展。

3、多态性:指的是同一操作作用于不同的对象,会产生不同的执行结果。

二、类与对象

简而言之,类是抽象的,而对象是具体的;类是一个物种的普遍存在的属性,而对象是细分出来,具体到某个实体对象。

在面向对象中,最核心的就是对象,为了创建对象,首先要定义一个类。

1、类的定义

  class 类名{
  成员属性;

  成员方法;  

}

2、对象的创建,也叫做实例化。

$对象名 = new 类名([参数1][参数2][...]);

三、类的封装

所谓类的封装是指在定义一个类时。将类中的属性私有化,即使用private关键字来修饰,私有化的属性只能在它所在类中被访问。PHP提供两种方法允许外界的访问。

1、通过getXXX()和setXXX()方法访问私有属性

getXXX获取属性值,setXXX设置属性值。

class Person{

private $name;

public function getName()

{
  return $this->name;

}

public function setName($value)

{

  $this->name = $value;

}

2、通过 __get()和 _ _set()方法访问私有属性

这两个方法是PHP自动调用的,功能和上面的一样。

3、public、protected和private修饰符

public:公有修饰符,所有成员都可以访问。

protected:保护成员修饰符,被修饰的不能被该类的修饰成员访问,但是能被子类访问和读写。

private:私有修饰符,对于同一个类里面的成员是可见的,访问无限制,但是不允许外部的代码访问。

4、this

它代表对象本身,当前对象。

$this->属性名;

四、构造方法和析构方法

每一个类中都有一个构造方法,他会在类实例化时进行自动调用,对类中的成员进行初始化。

与之对应的是析构方法,它在对象被销毁之前自动调用,用于完成清理工作。

1、构造方法

  修饰符 function __construct(参数列表){

  //初始化

}

2、析构方法

functions __destruct(){

  //清理操作

}

五、类常量和静态成员

1、类常量

const PI = 3.1415926;

使用const关键字声明常量,常量名不需要加$符号,并且在声明的同时对他进行初始化。常量能够被类的所有对象共享。

2、静态成员

数据被类的所有对象共享,不属于任何对象,只属于类。

访问修饰符 static 变量名;

访问修饰符 static 方法名(){}

六、继承

1、继承的概念

  在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如猫和狗都是动物。

  class 子类名 extends 父类名{

  //类体

  }

2、重写父方法

  在继承关系中,子类会自动继承父类中定义的方法,但有时子类中需要对继承的方法进行一些修改,即对父类的方法进行重写。

3、final关键字

  PHP中的类被final关键字修饰后,该类将不能被继承,也就是不能够派生子类。

  当一个类方法被final关键字修饰后,这个类的子类就不能重写该方法。

七、抽象类和接口

  1、抽象类

  在定义一个类时,其中所需要的某些方法暂时不能完全定义出来,而是让其继承的类来实现,此时就用到抽象类。

  abstract class 类名{

  //类成员

  }

  抽象方法只有方法名没有方法体。

  abstract function 方法名();

  2、接口

  如果一个类中的所有方法都是抽象的,则可以将这个类用另外一种方法来定义,即接口。在定义接口时,需用关键字 interface。定义接口与定义一个标准的类类似,但其中所有定义的方法都是空的。

  interface 类名{

  public function a();

  public function b();

  }

八、多态

  在设计一个方法时,通常希望该方法具备一定的通用性。例如实现一个动物叫的方法,由于每个动物的叫声是不同的,因此可以在方法中接收不同的动物类型参数,当传入矛盾就发出猫叫,传入狗就狗叫。

时间: 2024-10-28 16:38:37

PHP面向对象摘要的相关文章

javascript面向对象系列第三篇——实现继承的3种形式

前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.开宗明义,继承是指在原有对象的基础上,略作修改,得到一个新的对象.javascript主要包括类式继承.原型继承和拷贝继承这三种继承方式.本文是javascript面向对象系列第三篇——实现继承的3种形式 类式继承 大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,如new和instanceof.不过在后来的ES6中新增了一些元素,比如class关键字,但这并不

写给大家看的面向对象编程书(摘要)

一,几乎没有哪个类可以独立地存在.在大多数情况下,如果一个类不会与其他类交互,那么根本没有理由构建它. 二,实际上,OO开发中没有全局数据.静态属性和方法会子同一个类的所有对象间共享,但是其他类的对象是无法访问的. 三,要不惜一切代价避免改变公共接口,如果对公共接口做了修改,就会导致使用该接口的所有系统产生涟漪效应. 四,要通过网络发送一个对象(例如,通过网络发送到一个文件),系统必须展开这个对象,通过网络发送,然后在网络另一端重新合成.这个过程称为串行化(serializing)一个对象.通过

面向对象编程(章节摘要)

1,面向对象有3个主要特征,即封装性,继承性,多态性. 2,如果一个类药设置继承则必须指定NOTFINAL,否则此类无法被继承. 3,如果要对查询出来的数据进行排序,可以使用MAP或ORDER定义函数. 4,在一个类中,默认提供的构造方法需要传递全部的属性内容,如果用户有需要,也可以利用CONSTRUCTOR来定义制定参数的构造函数. 5,在面向对象中,可以通过子类为父类实例化,这样每一个父类对象所调用的函数会根据覆写此函数子类的不同而实现不同的功能. 6,一个类中可以使用NOT INSTANT

《设计模式:可复用面向对象软件的基础》摘要(上)

第一章 引言1.什么是设计模式? 设计模式是人们用来解决一些相似的问题和解决这类问题的核心方案.设计模式是用来实现设计复用的.2.设计模式的四要素 名称:描述模式的问题.解决方案和效果.名称有助于人们之间交流设计思想和设计结果. 问题:描述了何时使用模式.它描述了设计问题以及问题存在的前因后果. 解决方案:描述了设计的组成部分,以及它们之间的相互关系.各自的职责和协作方式. 效果:描述了模式应用的效果及使用模式应权衡的问题.3.本书如何描述一种设计模式? 从以下方面来描述:模式名称和分类.意图.

Python全栈开发,Day7 - 面向对象学习

本章内容 面向对象编程介绍 面向对象开发 面向对象的特性 一.面向对象编程介绍 介绍之前,先说一个例子: 你的老板要你做一款枪战游戏,游戏里面有很多的角色,比如CF里面的潜伏者和保卫者,在游戏里还有很多的玩家,每个玩家都有不同的名字和装扮,但是你发现这些玩家同一个阵容(潜伏者.保卫者)里的玩家具有很多相同的属性,于是你开始写代码,首先定义潜伏者1,名字.武器......等,然后保卫者1,同样,名字.武器......:代码如下: 1 def defenders(name,weapon,*args)

面向对象的软件测试技术

相关知识点-面象对象(=Object Oriented)技术 1. 对象和类 l 面象对象的编程语言:以对象为中心,以消息为驱动,程序=对象+消息 l 类是一种新的数据类型,是设计的核心,是通过抽象数据类型的方法来实现的一种数据类型 l 类是对某一对象的抽象,对象是某一类的实例,两者密切相关 2. 封装.继承和多态性 (1) 封装:把数据和操作结合一体,使程序结构更加紧凑,避免了数据紊乱带来的调试与维护的困难 (2) 继承:可以从一个类派生到另一个类,派生类继承了父类和祖先类的数据成员和函数,增

程序员生存定律-摘要(自身提高角度)

20~30岁这个阶段可以讲是黄金时期,这个阶段里,家庭负担较小,可以自由支配的时间较多.当然撞到了很特别的.需要疯狂加班的公司只能另算. 30岁之后因为娃娃出生等,家庭上的时间开销增加,个人可支配时间变少.其中很大一部分人还有很大可能会面对电视剧里常说的婆媳矛盾,让你每天心绪不宁. 40岁之后,家庭琐事会进一步增加,典型的上有老下有小.实在运气不好的自己也会生点病---颈椎病.腰间盘突出.胃病大概可以入选程序员的三大职业病. 50岁之后,时间上会再次解脱,但可惜的是自己也老了,时机不在. 基本上

Java基础之面向对象

面向对象 1.面向对象思想: (1)概述:面向对象是相对于面向过程而言的,面向过程强调的是功能,面向对象强调的是将功能封装进对象,强调具备功能的对象: (2)思想特点: A:是符合人们思考习惯的一种思想: B:将复杂的事情简单化了: C:将程序员从执行者变成了指挥者: 比如我要达到某种结果,我就寻找能帮我达到该结果的功能的对象,如我要洗衣服我就买洗衣机, 至于怎么洗我不管. (3)特征: 封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式 继承: 多个类中存在相同属性和行为时,将这些内容抽取

C#中面向对象——封装,继承,多态

摘要:提到面向对象就不得不说面向对象的三大特性,封装:继承:多态!下面还是通过图和例子的方式继续了解一下面向对象的三个核心! 下面还是通过具体的图进行分析: 通过代码来感受一下语法: class Program { static void Main(string[] args) { Fu f1 = new Fu(); f1.GetFu(); //父类就只能获取到父类的属性方法,是不能获取到子类的方法的 zi z1 = new zi(); z1.GetZi(); //子类既可以获取到子类的方法属性