面向对象基础总结|学习笔记

简介: 快速学习面向对象基础总结

开发者学堂课程【PHP 进阶教程-由浅入深掌握面向对象开发-第一阶段面向对象基础总结】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/711/detail/12673


面向对象基础总结

 

内容介绍:

一、总结

 

一、总结

接下来对面向对象的基础做一个总结

1、面向对象编程是一种核心的编程思想,这种核心是“万物皆对象”即所有的都被看成一个对象。

与面向过程编程思想的本质区别是:面向过程编程思想有事务操作的主体,每一次操作都是由明确的对象来执行,而不是只需要过程来执行即可。

2、面向对象思想的本质是将数据(用属性保存数据)、数据操作(用函数施行)进行的一次二次封装(形成类的概念),而往后的所有操作都必须由类或者类产生的对象进行调用

3、面向对象核心关键字

(1)类:class,是一种结构主体,不会执行,它是从具体的实体中抽离出来的共性的代码,所以也叫抽象。

(2)类成员:类结构中能够直接定义的成员

①属性(property):存储数据的变量

②方法(method):加工数据,数据操作的逻辑

③类常量(const):保存不可变的数据,存储固定数据的内部常量(const定义)

(3)实例化:new,其实就是类结构产生对象的过程

(4)实例:instance,也就是产生的一个具体的对象

4、访问修饰限定符:限定被修饰成员的方位位置(所有类成员都能被访问)

操作过程中,对象访问成员时也就是类定义了成员时候,需要对其进行控制。

(1)pablic:公有,允许类内类外访问,表示不限定访问区域

(2)protected:受保护,只有关联类内部可以访问,表示限定范围为关联类内部(本质是方法内部,关联类需要学习继承)

(3)private:私有,表示限定范围为自己类内部(内部方法内)

5、类内部对象:$this

访问过程中会产生对象,而对象在外面访问时候,内部有时候是无法访问的,因为有访问修饰限定符的限定,所以有时候需要内部加工。

(1)普通方法内部,代表来访对象

(2)因为在类内部,所以不论任何访问修饰限定符限定,都可以访问

6、魔术方法:自动调用的方法

在某些特殊情况下,会自动调用的方法。

(1)构造方法:_construct(),用于对象初始化资源,对象实例化后自动调用

(2)析构方法:_destruct(),对象销毁资源,销毁时对象自动调用

(3)克隆方法:clone(),对象被克隆后,克隆对象自动调用

如果不需要调用,可以将其私有化,但是一般析构方法不会私有化,因为对象一定会被销毁。

7、对象传值:对象可以赋值给其他对象,而且是引用传值,不会产生新对象

不论是通过变量还是通过形参传递给其它函数的方法,都不会产生新对象。

8、范围解析操作符: ::,用于类直接访问成员的符号

主要与对象进行对抗,因为对象访问的是属性和方法,而类访问的是自己的成员。

(1)类访问类专属成员:类常量(静态属性和静态方法)

(2)对象也可以使用该符号访问类成员(不建议)

9、静态成员:使用 static 关键字修饰的成员,用来给类访问的成员(对象也能访问)

如果是使用 static 关键字修饰的成员,不要用对象访问,应该用对象访问。

(1)静态成员:静态属性和静态方法

(2)静态成员在编译(类加载到内存)时初始化,而且会将其放在类里面,所以不用产生对象即可访问(是高效率的访问)

(3)静态属性不会出现在对象的内存空间

注意,能够使用静态访问就尽量不要使用非静态。但是对象一定只能使用非静态,因为一个类产生 n 个对象,有不同的状态,这是静态无法完成的。

10、self关键字:为了让类内部用来代表类名访问类成员的一种关键字。

(1)用于 self与范围解析操作符结合访问:self:类成员

(2)self可以代替类名在类内部进行实例化:new self

能够保证类结构在外部修改名字时候不用修改代码。

11、类的加载:类的使用的前提是类在内存中必须存在

(1)手动加载:比较繁琐,使用前写好加载路径

(2)自动加载:并不是真正的自动加载,只是提前写好代码,在内存找不到要用的类的时候自动执行。

①autoload()函数:魔术函数,在函数内部写好加载方式,内部实现加载机制。

②自定义函数+spl autoload_register(函数:与魔术函数类似(建议使用)

12、对象克隆:从已有对象产生新对象的过程叫做克隆。如果允许克隆,就使用魔术克隆方法,不允许克隆就私有化,即:

(1)防止克隆:私有化克隆魔术方法

13、利用基础去做一些类的开发或者实现一些业务需求的开发。

多关注业务,懂得如何根据业务划分类,然后慢慢掌握类内部应该如何定义成员(属性、方法、静态和非静态等的定义)去解决需求问题,从而使用面向对象思想基本语法面对开发问题。

以上就是关于面向对象基础的学习。

相关文章
|
3月前
|
存储 人工智能 运维
面向对象基础
面向对象基础
39 0
面向对象基础
|
Java Android开发
Java面向对象程序设计基础实战
Java面向对象程序设计基础实战
179 0
|
数据挖掘 PHP 开发者
面向对象简单技术实现|学习笔记
快速学习面向对象简单技术实现
70 0
面向对象简单技术实现|学习笔记
|
PHP 开发者
面向对象的三大特性|学习笔记
快速学习面向对象的三大特性
50 0
|
存储 开发者 Python
面向对象练习 | 学习笔记
快速学习 面向对象练习
65 0
面向对象练习 | 学习笔记
|
开发者 Python
面向对象的介绍 | 学习笔记
快速学习 面向对象的介绍
83 0
面向对象的介绍 | 学习笔记
|
开发者 Python
面向对象回顾 | 学习笔记
快速学习 面向对象回顾
57 0
|
数据安全/隐私保护 C++
C++面向对象程序设计简介
C++面向对象程序设计简介
171 1
|
存储 程序员 数据库
面向对象基础进阶03
面向对象基础进阶03
80 0
面向对象基础进阶03