本人专攻PHP+大数据集群,利用课余时间想巩固一下底层的C++和LINUX课程。写博客,一方面可以以博客的方式记录自己的程序猿之路,另一方面也可以起到前人种树后人乘凉的作用。计算机中这些概念有的时候很抽象很难理解,我个人觉得学语言重点是学思想,至于代码是怎么敲的,多敲几遍敲会了,但是思想却不是多想几遍就能想到的,所以我觉得编程的思想很重要。
最近在学PHP面向对象,之前本人也接触过C++面向对象,今天想浅谈一下面向对象的几个相关的基本概念。
1、什么是面向对象?什么又是面向过程。
ps:既然讲的是面向对象,那首先得知道什么是面向对象。面向对象是与面向过程相对应的。具体概念我稍后说,我先解释一下对象。
【对象】对象不是男女朋友的这个对象,它好比哲学中的物质,一切看得见摸得着的都是一个对象,俗话说就是一个东西,这就是对象。
【面向对象】和【面向过程】编程是来解决问题的,面向对象的思想就是把这个难题分解成一部分一小部分(就是分成一个个的对象),然后找到这些解决的办法;而面向过程,就是这个题不会做,我从头到尾一步一步去解决。大概能懂了吧?面向过程重在步骤上,而面向对象重在划分问题上。
2、面向对象分类
OOA(面向对象分析) Object-Oriented Analysis
OOD(面向对象设计) Object-Oriented Design
OOP(面向对象编程) Object-Oriented Programming
3、面向对象的三大特性:封装、继承、多态
【封装】顾名思义就是把一个东西给包装起来,可以理解为字面上包装的意思,包装成了一个“类”,组装成了一个“类”,我们所有的人凑在一起,我们组成了“人类”。
【继承】生活中儿子继承老子的遗产,这叫继承,同样,在程序中,父亲的属性传给了儿子,这就是继承。
【多态】不同事物对同一问题有不同的反应。比如唱歌,你在演唱会唱歌有人会鼓掌,你大晚上唱歌有人要揍你。就这么简单,唱歌这件事,在不同时间不同地点有了不同的反应,这就是多态。
4、class类
上面讲封装的时候提到过,封装成一个类。类是一个抽象的概念。生活中,有人类,动物类,植物类……各种类。但类是什么东西呢,实际上是总结归纳后的一种群体。
注意下面这段话:我可以说我“是人”,但我不能说“我是人类”,我只能说我“属于人类”。懂了吧?人类是一个群体。
类有静态属性和动态属性两种。
【成员属性】又名“成员变量”,是这个类中静态的属性,比如姓名、性别、年龄、种族,就是这个类中你“有”的东西。
【成员方法】又名“成员函数”,是这个类中动态的属性,比如吃饭、睡觉、工作等动作,就是这个类中你“会做”的东西
5、类的实例化
【类的实例化】就是创建对象的过程
$php = new Person();
记得大学的时候老师经常说“new一个类”,到底啥意思呢?打比方说,已经存在这么一个人类Person了。