美文网首页Java程序栈
十六、面向对象VS面向过程

十六、面向对象VS面向过程

作者: 一直想上树的猪 | 来源:发表于2018-12-05 15:42 被阅读4次

在所有的计算机编程语言中,其思想大致分为两种:面向对象和面向过程。那么,两者有什么区别呢?今天我们来聊一聊。
首先,我们提出一个需求:将一个大象,装进一个冰箱里面(人生在于离谱)

面向过程

面向过程:针对需求,将需求划分成若干个功能模块。将这几个功能的模块,有序的串联起来执行。
面向过程是一个线性的。

使用面向过程的思路实现:
三步:
1:打开冰箱门
2:把大象放进去
3:把冰箱门带上

面向对象

根据需求,列出思路:
1:分析:这个需求中有几个对象。(名词分析法)。
结果有两个对象,一个大象,一个冰箱。

2:分析:这两个对象具有什么样的功能(方法),和属性。就可以实现我们想要的需求。

结果:如果冰箱具有 开门,关门的功能,以及大象会钻冰箱的功能。那么就可以实现需求。
功能:功能具体作用到谁的身上,那么该功能就属于谁。

3:创建类描述 具有指定功能的对象。
如何创建? 必须通过代码去描述 大象,,描述冰箱。
使用什么去描述 大象和冰箱? 用类。
创建了2个类。一个大象类,一个冰箱类。

4:创建对象。通过类去创建对象。
Elephant e = new Elephant();//创建了一个大象
int i = 0;
Fridge f = new Fridge();//创建了一个冰箱

5:让我创建的对象,去执行自己具有的功能就OK了。
使用对象 . [点引用符] 去调用对应的方法。

最终执行的时候还是需要使用面向过程的方式去执行。

面向对象的实现

package com.bjsxt.oop.first;

public class Main {

    public static void main(String[] args) {
        Fridge fridge = new Fridge();
        fridge.capacity = 30;
        Elephant elephant = new Elephant();
        elephant.size = 30;
        
        fridge.openDoor();
        elephant.enterFridge(fridge);
        fridge.closeDoor();
        
    }

}


package com.bjsxt.oop.first;

public class Fridge {
    
    int capacity;
    int height;
    int age;
    
    void openDoor(){
        System.out.println("冰箱门打开了!");
    }
    
    void closeDoor(){
        System.out.println("冰箱门关闭了!啊");
    }
    
}


package com.bjsxt.oop.first;
//Elephant 就是用来描述大象的,大象的属性和功能都要在大括号中描述。
class Elephant {
    int size;
    //类体
    boolean enterFridge(Fridge f){
        if(size > f.capacity){
            System.out.println("大象该减肥了!!好大象不过1000!");
            return false;
        }else{
            System.out.println("大象成功的钻到了冰箱里面 啊!");
            return true;
        }
    }
    
}

小结

好了,说了这么多,面向对象虽然对于小需求来说相比面向过程比较繁琐,代码量比较多,但是在实际工作的过程中,我们不可能只是面对单一不变的需求的,为了适应需求的变更,面向对象能很好地优化我们代码以及减少工作量。面向过程固然有其好处,思路清晰且容易理解,但是它只适合一些比较简单的需求。下面我将分几个部分介绍面向对象。

相关文章

  • 十六、面向对象VS面向过程

    在所有的计算机编程语言中,其思想大致分为两种:面向对象和面向过程。那么,两者有什么区别呢?今天我们来聊一聊。首先,...

  • Android IOS开发要理解何为面向对象的思维

    何为面向对象的思维? 面向对象 VS面向过程 OOP =》面向对象,全称Object Oriented Progr...

  • Python基础-OOP

    OOP 思想以模块化思想解决工程问题面向过程 VS 面向对象由面向过程转向面向对象 常用名词OO:面向对象OOA:...

  • python面向对象!

    python全栈开发,初识面向对象 面向过程 VS 面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程...

  • Python干货:一片博文把 面向对象 安排的明明白白

    Python面向对象编程是一门思想: 面向过程 VS 面向对象 Python面向过程的程序设计的核心是过程(流水线...

  • Python中的面向对象以及类

    面向过程 VS 面向对象 面向过程 面向过程的程序设计思想是过程,也就是流程式编程思想.C语言就是面向过程的,它就...

  • 面向过程 vs 面向对象

    面向过程: 吃.(我,饭)面向对象: 我.吃(饭)

  • Python面向对象编程

    面向过程 VS 面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好...

  • 001 面向过程 vs 面向对象

    定义 面向过程:一种以事件为中心的编程思想 面向对象:一种以“对象”为中心的编程思想 面向过程   编程的时候把解...

  • 06 - 面向过程 VS 面向对象

    编程范式中,除了面向对象之外,被大家熟知的编程范式还有另外两种,面向过程编程和函数式编程。面向过程这种编程范式随着...

网友评论

    本文标题:十六、面向对象VS面向过程

    本文链接:https://www.haomeiwen.com/subject/lrhwcqtx.html