面向对象基础信息

一、类与实例

对象:是一个自包含的实体,用一组可识别的特性和行为来标识。

类:就是具有相同的属性和功能的对象的抽象的集合。

实例:就是一个真实的对象。

实例化:就是创建对象的过程,使用new关键字来创建。

二、构造方法

构造函数,其实就是对类进行初始化。构造方法与类同名,无返回值,在new的时候调用。

所有的类都由构造函数,如果不编写则系统默认生成空的构造方法,若有定义的构造方法,则默认的构造方法就会失效。

三、方法重载

方法重载是指在一个类中可以定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。

四、属性与修饰符

属性:类的变量成员叫做“属性”,或者叫“字段”、“特征”,在本文档统一称为“属性”。

属性声明是由关键字 public,protected 或者 private 开头,然后跟一个普通的变量声明来组成。

属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值。

public:共有的,表示它所修饰的类成员可以允许其他类来访问。

private:私有的,表示只允许同一个类的成员访问,其他类包括它的子类无法访问。

protected:表示只允许该类及其子类的成员访问,其他无关的类无法访问。

五、类的三大属性

(一)封装

每个对象都包含它能进行操作所需要的所有信息,这个特性称为封装,因此对象不必依赖其他对象来完成自己的操作。

优点:

1、良好的封装能够减少耦合;

2、类内部的实现可以自由的修改;

3、类具有清晰的对外接口。

(二)继承

继承定义了类如何关联,共享特性。继承的工作方式是,定义父类和子类,或叫做基类和派生类,其中子类继承父类的所有特性,此外,子类还可以定义新的特性。

1、子类拥有父类非private的属性和功能;

2、子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能;

3、 子类还可以以自己的方式实现父类的功能(方法重写);

缺点:

1、父类变,子类不得不变;

2、继承会破坏包装,父类实现细节暴露给子类,增大了两个类的耦合性。

(三)多态

多态表示不同的对象可以执行相同的动作,但要通过它们自己的实现代码来执行。

同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。

1、 子类继承父类;

2、子类重写父类的方法;

3、父类引用指向子类对象;

六、重构

重构(Refactoring)就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

七、抽象类

1、 抽象类不能实例化;

2、抽象方法是必须被子类重写的方法;

3、如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其他一般方法。

八、接口

接口是把隐式公共方法和属性组合起来,以封装特定功能的一个集合。一旦类实现了接口,类就可以支持接口所指定的所有属性和成员。声明接口在语法上和声明抽象类完全相同,但不允许提供接口中任何成员的执行方式。实现接口的类就必须实现接口中的所有方法和属性。

一个类可以支持多个接口,多个类也可以支持相同的接口。

接口用interface声明,接口中的方法和属性前面不能有修饰符、方法没有方法体。

九、抽象类和接口的区别

1、 类是对对象的抽象,抽象类是对类的抽象;接口是对行为的抽象。

2、如果行为跨越不同类的对象,可使用接口;对于一些相似的类对象,用继承抽象类。

3、从设计角度讲,抽象类是从子类中发现公共的东西,泛化出父类,然后子类继承父类,而接口是根本不知子类的存在,方法如何实现还不确认,预先定义。

https://www.php.net/manual/zh/language.oop5.php

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值