什么是面向对象?面向对象小总结

什么是面向对象?

面向对象一共有3个部分:面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)。而我们常说的是面向对象编程(OOP),其实是面向对象的一部分。而认识面向对象编程之前要先了解两个重要的概念就是类和对象。

类与对象

世间万物皆对象,世间的万物我们都可以看成是对象,因为他们都有各自的属性。比如:人有身高,体重,年龄,性别等等这些属性,也可以唱歌,跳舞,跑步等等行为。

如果把人看成一个类的话,那么身高,体重,年龄,性别这些就是人这个类的属性,而唱歌,跳舞,跑步就是人这个类的行为。

面向对象编程三大特点

(1).封装性(public、protected、private)

简单形象的解释就是,把功能放在一个盒子里,要用到这个功能的时候,打开盒子,取出就可以使用。

公共定义public :不受限 在任何地方都可以访问
保护定义protected :本类及子类的类内部进行访问(类外部无法访问 出了类的大花括号即为外部) $this->name
私有定义private: 只被本类内部访问(类外部及子类内部都无访问权)

(2).继承性(extends)

子类自动继承一个或多个父类中的属性与方法,并可以重写或者添加新的属性或方法。

    1》【子类】可以通过$this 【访问父类的属性】
    2》【子类的对象】可以直接【调用父类的方法和属性】
    3》PHP的单继承特性:类不允许同时继承多个父类(extends后面只能跟一个父类名称)
    4》php中的extends后面只能跟一个类的类名,这就是php的单继承原则

这个特性简化了类和对象的创建,提高了代码的可重用性。

(3).多态性

指的是一个类可以创建多个对象,获取不同的结果。

面向对象的五大基本原则:单一职责原则;开放封闭原则;替换原则; 依赖原则; 接口分离原则。

面向对象小总结

1、$this是什么

当前类实例化的对象

2、访问对象中的成员

对象->成员

3、构造方法

通常用来初始化对象的属性,不用把属性写死,不同的对象就有了不同的属性

4、get、set的用法

通常将属性设为protected,利用getXxx和setXxx方法来设置和获取属性的值,避免外部随意的更改,同时还可以对对象进行过滤

5、类的封装

public方法可以在类外访问,相当于提供给外部的接口

private方法只能在类内(即类的大括号内),外部不能直接访问,只能通过其他public方法来调用,就像电脑的开关,按电源键就可以开机,你不用知道它背后一系列的运转

protected,同private,不过可以在其他的类中继承

6、类的继承与重写 (extends)

继承的类可以访问父类的public和protected方法或属性,避免了代码的重写

继承的类重写父类的方法只需取与父类同样的方法名,在里面写自己的代码即可

7、抽象类(abstract)

抽象类是用来继承的,不能直接实例化,抽象方法不用写方法体

作用是硬性的规定子类需要实现的方法,不实现不能实例化

8、接口(interface)

继承使用implements

保证代码的一致性

9、命名空间与自动加载(namespace)

避免重名冲突,避免每次使用类前require的操作

申明类前有namespace 文件位置  

namespace app/Admin;

使用类前有use namespace/类名

use app/Admin/User;

10、静态变量和静态方法

可以看作是全局性的方法

不用实例化对象即可使用

使用方法:类名::成员

11、const变量

const主要是用于一些硬性的规定数据和约定俗成的数据码上面,可在类外使用,只能在定义处修改,比如我们的http状态码

定义:const ABC=12;

使用:类名::ABC;

原文地址:https://www.cnblogs.com/lvyl/p/6973081.html