java - 面向对象思考问题的方法
ringa_lee
ringa_lee 2017-04-17 13:38:42
0
2
529

我学了C语言,他是面向过程的。
我在学习面向对象时,发现和面向过程思考问题很多地方不一样,考虑现实中的问题。
请大家说一下你们是怎么思考面向对象的问题。

谢谢大家

ringa_lee
ringa_lee

ringa_lee

全部回覆(2)
PHPzhong

C是過程導向的語言,在程式碼中定義的方法一般是一直呼叫;而在物件導向的語言(如Java)或基於物件導向的語言(如JavaScript),方法都定義在物件上或類別上(ps:js中對類別並沒有明確的說法)。譬如,有一個比較大小的方法:

在C語言中:

int compare(int num1,int num2){
     return num1>num2?num1:num2;
}

//调用
compare(1,2);

在Java中

public class Compare{
     private int num1;
     private int num2;

     public Compare(int num3,int num3){
              this.num1=num3;
              this.num2=num4;
     }

     public int com(){
               return this.num1>this.num2?this.num1:this.num2;
     }
}

//调用
Compare cpm = new Compare(5,6);
System.out.println(cpm.com());

上面一個簡單的範例,是為了區分一下過程導向和物件導向針對同一個問題的不同思維方式。雖然這裡看不出物件導向的突出點,但是在實際專案中,方法是非常多的,有很大的編碼量。在這種情況下,類別就能很好的對程式碼進行組織,譬如一個使用者有吃飯、走路、睡覺、娛樂等不同行為。
在C語言中,實作可能是這樣的:

void eating(){}

void walk(){}

void sleep(){}

void entertainment(){}

.......//定义其它方法

而在物件導向的語言中,實作可能是這樣的:

public User{
    void eating(){}

    void walk(){}

    void sleep(){}

    void entertainment(){}

    ....//其它方法
}

很明顯,物件導向對程式碼結構進行了很好的組裝,讓人更容易理解。酷殼有一篇關於理解物件導向的文章:
如此理解物件導向程式設計 ,希望對題主理解物件導向有幫助

左手右手慢动作

你可以去看看圖靈長類書籍有本叫《這給大家看的物件導向程式設計書》的書。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!