标签:
二者都是一种思想,面向对象是相对于面向过程而言的。
1.面向过程思想强调的是过程(动作)。
2.在面向过程的开发中,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然而由这些功能方法相互调用,完成需求。
3.面向过程的典型代表语言是:C语言。
1.把步骤和方法封装起来,根据不同的功能,进行不同的封装,用的时候,找到对应的类就可以了。
2.将功能封装进对象,强调具备了功能的对象。这就是面向对象的思想。典型的语言是:C++,Java。
3.面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则,如抽象、分类、继承、聚合、多态等。
①面向对象思想的特点:
② 在完成需求时,按照面向对象的思想,我们应该这样做:
人把大象装冰箱
面向过程:1.打开冰箱----->2.把大象装进冰箱------>3.把冰箱门关住。
面向对象:人 { 1.打开(冰箱){ 冰箱.开门(); } 2. 操作(大象){ 大象.进入(); } 3. 关闭(冰箱){ 冰箱.关门(); } }
冰箱 { 开门(){} 关门(){} }
大象 { 进入(){ } }
public class Demo1{ /* 把大象装进冰箱。 */ public static void main(String[] args){ /* 面向过程:1、打开冰箱门。 2、把大象装进去。 3、关冰箱门 */ //面向过程,调用方法: open(); in(); close(); /* 面向对象: 如何思考才能更符合面向对象呢? 1、有那些类? 2、每个类有什么东西呢? 3、类与类之间有什么关系呢? 把大象放进冰箱的面向分析(名词提取法) a、有几个类?大象,冰箱,Demo类 b、每个类有哪些东西呢? ————大象:进去 ————冰箱:开,关 ————Demo:main方法 */ //面向对象,创建对象,对象调用方法 Beer beer = new Beer(); IceBox box = new IceBox(); box.open(); beer.in(); box.close(); } public static void open(){ System.out.println("面向过程:打开冰箱"); } public static void in(){ System.out.println("面向过程:把大象装进冰箱。"); } public static void close(){ System.out.println("面向过程:关冰箱"); } } class Beer{ public static void in(){ System.out.println("面向对象:把大象装进去"); } } class IceBox{ public static void open(){ System.out.println("面向对象:打开冰箱"); } public static void close(){ System.out.println("面向对象:关上冰箱"); } }
我们在面向对象的开发中,就是不断的创建对象,使用对象,指挥对象做事情。面向对象的设计过程,其实就是管理和维护对象之间的关系。
③面向对象的思维方法
④面向对象的三大特征
面向对象有三大特征,分别是:封装(encapsulation)、继承(inheritance)、多态(polymorphism)。如果要回答四个,可加上 抽象性 这一特点。
1.继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
2.封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
3. 多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
4.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
JavaSE——面向对象与面向过程、类与对象、(属性、方法、构造器)等
标签:
原文地址:http://www.cnblogs.com/cmpblog/p/5815390.html