面向对象与面向过程

概念

面向过程:当需要实现一个功能的时候,每一个具体的步骤都要亲力亲为,详细处理每一个细节。强调步骤。

面向对象:当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的人,来帮我做事儿。强调对象。

比较

面向过程 面向对象
性能相对来说更高 性能相对来说比面向过程低
但不易维护、不易复用、不易扩展 易维护、易扩展、易复用

因为类调⽤时需要实例化,开销⽐较⼤,⽐较消耗资源,所以当性能是最重要的考量因素的时候,⽐如单⽚机、嵌⼊式开发、Linux/Unix 等⼀般采⽤⾯向过程开发。

因为⾯向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。

代码实现

下面以网络上关于面向对象与面向过程经典的解释——把大象装进冰箱来举例说明:

public class Demo {
    public static void main(String[] args) {
        /*
            把大象装进冰箱的步骤:
                1.打开冰箱门
                2.把大象装进冰箱
                3.关闭冰箱门
         */
        // 使用面向过程的方式
        po();
        // 使用面向对象的方式
        oo();
    }

    // 使用面向过程的方式,即一步一步按照步骤来
    public static void po(){
        // 第一步:打开冰箱门
        System.out.println("打开冰箱门");
        // 第二步:把大象装进冰箱
        System.out.println("把大象装进冰箱");
        // 第三步:关闭冰箱门
        System.out.println("关闭冰箱门");
        // 到现在为止,完成所有步骤,已经将大象关进冰箱了
    }

    // 使用面向对象的方式,即创建一个冰箱对象,让冰箱来打开、装大象、关门,我们只需要调用它的方法就可以了
    public static void oo(){
        // 实例化一个冰箱对象,让冰箱来完成这些操作
        Refrigerator refrigerator=new Refrigerator();
        // 调用方法,打开冰箱门
        refrigerator.open();
        // 调用方法,把大象装进冰箱
        refrigerator.putElephant();
        // 调用方法,关闭冰箱门
        refrigerator.close();
    }
}

/**
 * 这是一个冰箱类,该类有操作冰箱的方法,如打开冰箱门等
 */
class Refrigerator{
    public void open(){
        System.out.println("打开冰箱门");
    }

    public void putElephant(){
        System.out.println("把大象装进冰箱");
    }

    public void close(){
        System.out.println("关闭冰箱门");
    }
}
posted @ 2024-08-01 11:48  wen-210162704027  阅读(1)  评论(0编辑  收藏  举报