面向对象和面向过程

推荐 生活 2019-01-14 02:13:28 1005

本文收集整理关于面向对象和面向过程的相关议题,使用内容导航快速到达。

内容导航:

  • Q1:面向对象和面向过程的区别和联系
  • Q2:面向对象和面向过程的区别有哪些
  • Q3:面向对象和面向过程最本质的区别是什么?
  • Q4:说明“面向对象”和“面向过程”有什么区别
  • Q1:面向对象和面向过程的区别和联系

    呵呵,这种东西真不好说 面向过程的编程应该关注的是如何使用函数去实现既定的功能。 面向对象的编程,是关注如何把相关的功能,包括函数和数据有组织地捆绑到一个对象身上。这也是类的概念提出的目的。实际实现一个对象的过程中,就包含了很多面向过程的方法。 。。唉。。有点只可意会,不可言传的味道了。。 还是看几个C和C++的程序吧,可能会有帮助的

    Q2:面向对象和面向过程的区别有哪些

    掌握面向对象的困难之处在于思路的转换。我们通常习惯于考虑解决问题的方法,而不是考虑将问题抽象成对象再去解决它。
    我还是从两个简单的例子来说一下吧,希望对你转换思路有帮助:
    第一个简单的例子:
    (编写一个驾驶汽车的方法)
    面向过程的程序设计:
    编写一个方法,void drivecar();
    面向对象的程序设计:
    将一辆汽车看成一个对象,将所有汽车对象的共性抽取出来,设计一个类Car,类中有一个方法void drive(),用Car这个类实例化一个具体的对象car,调用:car.drive()。
    第二个简单的例子:问题:求一个长方形的周长和面积。
    以面向过程的程序设计方式思考:
    1、确定长方形周长和面积的算法。
    2、编写两个方法(函数)分别计算长方形的周长和面积。
    3、求周长的方法(函数)和求面积的方法(函数)需要两个参数,分别是长方形的长和宽。
    面向过程的程序设计代码:
    class Rectangle
    {
    static int perimeter(int length,int width)
    {
    return 2*(length+width);
    }
    static int area(int length,int width)
    {
    return length*width;
    }
    public static void main(String[] args)
    {
    System.out.println("perimeter = “ + Rectangle.perimeter(5,4));
    System.out.println("area = “ + Rectangle.area(5,4));
    }
    }
    面向对象的程序设计:
    问题:求一个长方形的周长和面积。
    以面向对象的程序设计方式思考:
    1、一个长方形可以看成一个长方形对象。
    2、一个长方形对象有两个状态(长和宽)和两个行为(求周长和求面积)。
    3、将所有长方形的共性抽取出来,设计一个长方形类。
    4、通过长方形对象的行为,就可以求出某个具体的长方形对象的周长和面积。
    (程序你可以自己试着编一下哈!)

    我使用Java和C语言的时间都比较久,我在头条上也写了关于Java编程方面的系列文章,如果有编程方面的问题,也可以咨询我。

    谢谢!

    wwW.yiJi.TaO.cOM

    Q4:说明“面向对象”和“面向过程”有什么区别

    1.面向过程(结构化程序设计)
    采用自顶向下、分而治之的方法,将整个程序按功能划分为几个可独立编程的子过程模块,每一子模块完成指定的子任务,主过程通过调用各子过程完来成全部处理工作 。
    2.面向对象的程序设计(Object-Oriented Programming)
    面向对象的程序设计方法强调直接以现实世界中的物体为中心来思考和认识问题,并按照这些事物的本质特征把它们抽象为类。采用数据抽象和数据隐藏,类之间互相交互,共同构成大型的面向对象基础。
    3.面向对象的相关概念
    1)类(Class):具有相似属性和行为的一组对象,就称为类。可见,有了类的概念以后,就可以对具有共同特征的事物进行统一描述;
    2)对象(Object):类的实例,每个对象都具有属性和方法这两方面的特征。对象的属性描述了对象的状态和特征,对象的方法说明了对象的行为和功能,并且对象的属性值只应由这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整描述。;
    3)封装(Encapsulation):封装把对象的属性和方法看成了一个密不可分的整体,从而使对象能够完整地描述并对应于一个具体事物 ;
    4)继承(Inheritance):在面向对象的程序设计中,允许在已有类的基础上通过增加新特征而派生出新的类,这称为继承。其原有的类称为基类(base class),而新建立的类称为派生类(derived class);
    5)消息(Message):当一个对象需要另外一个对象提供服务时,它向对方发出一个服务请求,而收到请求的对象会响应这个请求并完成指定的服务。这种向对象发出的服务请求就称为消息。所谓消息就是调用一个对象所提供的方法;
    6)多态性(Polymorphism):多态性是面向对象的一个重要特征。多态有两种,静态的和动态的。在通过继承而派生出的一系列类中,可能存在一些名称相同,但实现过程和功能不同的方法(Method)。当程序中的其他部分发出同样的消息时,按照接收消息对象的不同能够自动执行类中相应的方法。其好处是,用户不必知道某个对象所属的类就可以执行多态行为,从而为程序设计带来更大方便。
    4.面向对象编程的特点
    1)OOP以“对象”或“数据”为中心。由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更复杂的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的改变对整个系统几乎没有影响;
    2)引入了“类”(class)的概念。类与类以层次结构组织,属于某个类的对象除具有该类所描述的特性外,还具有层次结构中该类上层所有类描述的全部性质,OOP中称这种机制为继承;
    3)OOP方法的模块性与继承性,保证了新的应用程序设计可在原有对象的数据类型和功能的基础上通过重用、扩展和细化来进行,而不必从头做起或复制原有代码,这样,大大减少了重新编写新代码的工作量,同时降低了程序设计过程中出错的可能性,达到了事半功倍的效果。
    5.设计了良好的OOP系统具有的特性
    1)可维护性:软件在投入使用的过程中,随着运行时间的延长,后期可能就不符合客户的需求了,我们就需要对软件进行修改。后期维护的人员初期可能没有参与到软件的开发中,对软件的结构是不熟悉的。那OOP系统就能保证后期的维护比较方便,比较简单;
    2)可扩展性:在软件运行后期我们需要对软件新增一些功能的时候,不需要对软件的架构进行大的更改就能非常方便的增加一些功能;
    3)可复用性:我们在这一个项目中使用的一些代码和类,模块可以很容易的拿到另外一个项目中去使用;
    4)健壮性:软件要比较稳定,出错的几率比较小。
    6.二者比较
    1)传统的结构化程序设计方法以过程为中心构造应用程序,数据和处理数据的过程代码是分离的、相互独立的实体,设计出的程序可重用代码少,且当代码量增加时维护数据和代码的一致性困难;
    2)面向对象程序设计方法中,对象所具有的封装性和继承性使得代码重用成为可能,并大大减少了程序出错的可能性;
    3)面向对象方法吸收了结构化程序设计方法的优点,同时引入了新概念、新机制并建立了比传统方法更高层次的抽象。面向对象内部也包含了面向过程,比如我们在设计类中的一个方法时,我们就会采用面向过程的一些原则,一些思想等等…….
    7.一些误区
    1)面向对象优于面向过程:面向对象与面向过程没有绝对的优劣之分,只有是否适用之别;
    2)C++ = C + 类, C++的编程思想被很大的改变,如果仅仅只是适用类将C封装起来,那不是C++的面向对象的原则;
    3)使用面向对象技术一定能构造出更优秀的软件:有人认为面向对象做出来的软件一定是非常优秀的,但是面向对象不慎误用,或者是面向对象编程的思想没有掌握好的话,这样的软件只会比面向过程写出的软件更糟糕而已;
    4)学会了C++就学会了面向对象技术,这个我们前面也已经说过,学习C++只是学习面向对象的第一步,后面还需要学习面向对象的一些原理,原则和方法。更是需要自己去实践,对面向对象不断加深理解。

    相关文章
    面向对象 面向过程区别2019-01-14
    如何理解面向对象思想2019-01-17
    面向对象的方法有哪些2019-06-14
    面向对象程序设计语言是一种2019-02-08
    什么是面向对象方法2019-07-18
    汉字演变过程七个阶段2018-08-26
    植物在它们的生命过程中都要经历2018-08-31
    教学过程与方法有哪些2019-01-31
    office2013安装过程出错2019-01-31
    心理学问题解决的过程2019-02-05