面向过程和面向对象的区别
面向过程和面向对象有什么关系呢?面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。
面向对象主要是把事物给对象化,对象包括属性与行为。当程序规模不大的时候,面向过程的方法还会体现出一种优势。因为程序的流程很清楚,按着模块与函数的方法可以很好的组织。但对于复杂而庞大的系统来说,面向过程就显得很无力了。
前段时间网上发现了一篇文章,说了一下面向过程和面向对象的不同,并且打了一个比喻,感觉通俗易懂。
用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭,你喜欢什么菜,就浇上什么菜。
蛋炒饭的好处就是入味均匀,吃起来香。如果恰巧你不喜欢吃鸡蛋,只吃青菜的话,那么唯一的办法就是全部倒掉,重新再做一份青菜炒饭了。盖浇饭就没有那么麻烦,你只需要把上面的盖菜拨掉,更换一份盖菜就可以了。从这个例子,你是否清楚的明白面向过程和面向对象的不同呢?
面向对象三大特征
面向对象有三大特征,这三大特征后面的文章中会提到:
- 封装
- 继承
- 多态
任何一门面向对象的编程语言都具备以上三大特征,例如:Python、C#、Java 等。
类
1,类和对象的概念
类是现实世界当中具有共同特征的事物进行抽象形成的模板或概念。而对象是实际存在的个体。
比如“明星”是一个类,“刘德华”就是一个对象。“沈腾”、“赵本山”、“宋丹丹”都是实际存在的对象,他们都属于“笑星”类,类描述事物的共同特征,那么“笑星”类有哪些共同的特征呢?“笑星”类都有姓名、性别、年龄等状态信息(属性),他们都有一个共同的行为就是“演出”(方法)。但当具体到某个对象之后,我们发现姓名是不同的,性别是不同的,年龄是不同的,演出效果也是不同的。所以我们在访问姓名,年龄的时候,必须先有笑星对象,通过真实存在的笑星对象去访问他的属性,包括“演出”的时候,只有“笑星”类是不行的,必须先有笑星对象,让笑星对象去执行“演出”这个动作。
通过以上描述,我们得知:类 = 属性 + 方法 ,属性描述的是状态,方法描述的是行为动作。
2,类的定义
直接看下面一段代码体会学生类的实现(只实现属性):
public class Student{
//学号
int no;
//姓名
String name;
//年龄
int age;
//性别
boolean sex;
}
以上程序中,no、name、age、sex 都是属性,他们都是成员变量中的实例变量,所谓实例变量就是对象级别的变量,这些属性要想访问,必须先创建对象才能访问,不能直接通过类去访问,因为每一个学生的学号都是不一样的。没有学生对象,何谈学号呢!
小节
理解了什么是类,什么是对象,类和对象有什么区别以及如何定义一个类。