1.何为面向对象?
假如一个公司要完成一个产品。产品的功能设计是一个很复杂的任务。如果是面向过程,他的设计路线可以是这样的:对每一个被设计的功能具体到每一步该如何实现,设计其代码。比如把一个箱子从一楼搬到三楼。可以这样实现:抬起箱子,行走到三楼,放下箱子。如果是面向对象设计可以这样:对楼层,对箱子,他两都是一个具体的对象。箱子可以换成别的东西吗?可以。楼层可以改变吗?可以。如果是面向过程编程,这两个数据也是可以改变的。例如项目要求实现路程的计算,代码分别可以是这样的
下为c语言(c语言也可以面向对象,因作者水平有限所以只选择了c)和java语言
#include<stdio.h>
int main(){
double height;//物体重量
double min;//最低的楼层
double max;//最高楼层
scanf("%lf %lf %lf",&height,&min,&max);
double k;//消耗体力系数
scanf("%lf",&k);
double consu(double height,double min,double max,double k);
double consume = consu(height,min,max,k);
}
double consu(double height,double min,double max,double k){
//实现计算
}
class louceng{
//一栋房子或者楼层该有的属性:包括但不限于各层高度差
//对楼层高度计算的代码块
}
class thing{
//一件物体的属性,包括但不限于物体重量
}
由以上代码可见面向过程和面向对象都能完美解决任务需求。甚至面向过程不需要设计类别,更加高效。但当需求变广,对一个目标需要进行多次操作面向对象编程,他的代码块将会变得越来越冗杂。比如增加物体的具体属性,增加属性,操作的复杂度将会变得很高。
2.面向对象其实是一种思维方式,但不同的语言框架能让这种思维或易或难的体现。
java所具有的封装,强化了面向对象的属性。继承使面向的对象更具体,更易扩展。
//未完待续。。。。。