1. 程式人生 > >[9]面向物件與面向過程

[9]面向物件與面向過程

前言:主要為個人筆記

面向過程:將問題分析成一個個步驟,將步驟一一在函式中實現,使用時不斷呼叫即可。

面向物件:將問題分析成一個個物件,描述每個物件擁有的行為和屬性。

舉例:

打電話

面向過程:開啟手機,找聯絡人,撥號,聊天,結束通話。

面向物件:人(開啟手機,找聯絡人,撥號,聊天,結束通話)。

公交車

面向過程:開車,到站停車,開車

面向物件:公交車(開車,到站停車,開車)

思考方式:

如果我現在需要一個正方形,長方形,三角形自轉

都先確定自轉點,不同的圖形有不同的自轉點,座標為(x,y)

面向物件者:

class Shape{
    int x;//x軸
    int y;//y軸
    void rotate(){
        //旋轉360°
    }
}

class Square extends Shape{
    void rotate(){
        //旋轉360°
    }
} 

class Rectangle extends Shape{
    void rotate(){
        //旋轉360°
    }
}

class triangle extends Shape{
    void rotate(){
        //旋轉360°
    }
}

面向過程者:

class Shape{
    int shapeNum;//形狀的編號
    int x;//x軸
    int y;//y軸
    void rotate(shapeNum,x,y){
        //旋轉360°
    }

    void rotate(shapeNum,x,y){
        //旋轉360°
    }

    void rotate(shapeNum,x,y){
        //旋轉360°
    }

    void rotate(shapeNum,x,y){
        //旋轉360°
    }
}

面向物件:

優點

靈活,維護方便,複用性高

缺點

效能略差於面向過程

面向過程:

優點

不用像面向物件那樣不停的生成物件,佔用資源。效能較優

缺點

維護起來麻煩,不靈活,複用性差

本小白剛學java不久,有許多不足,歡迎大佬指出,在下也會不斷的努力,修正錯誤。澆下的時間與心思,終有一天會在不知不覺中開花。