沒有對象,你憑什麼成爲百萬富翁

面向對象編程,你值得擁有

一、一個故事帶你瞭解 面向過程 與 面向對象 的天差地別

你可能不知道的唐僧創業的故事
時代變了,守着鐵飯碗過活的日子一去不復返了。唐僧越來越感覺生活不如意了,原來給人講講經就可以讓自己的精神生活和物質生活得到極大的滿足,現在不行了,現在是“酷”“富”“吐”這三類人生活得比較滋潤。
酷,能唱的、能跳的、能吹的、能耍的,等等。只要你某一方面“酷”,就會有“粉絲兒”跟着,就會給你帶來精神和物質的滿足,這樣的人生過得滋潤。
富,即有本事賺錢的人。做個“傳奇”遊戲就能掙幾千萬,等等,各有自己的招,這樣的人過得也得意。
吐,這是網絡時代的新產物,能讓大家爲之吐槽的,像“哥哥”“姐姐”之類的,也能拿個頭彩,過得逍遙。
唐僧琢磨了自己的情況,講“酷”,不如孫猴子,怎麼着都能“酷”出個樣;講“吐”,不如豬八戒,怎麼着都能讓人“吐”;又不想像沙和尚那樣,一輩 子沒啥大出息。看來只有賺個“富”字了。
於是,唐僧東拱西湊了5千塊錢註冊了一家公司,專營圖書出版,也就是攛掇手裏那些佛經。租了個小門臉,簡單裝飾了一下,就開始創業了。
第一天上班,感覺有點兒慘,光桿司令一個,但想到自己是老闆了,還是有些得意,想着將來總會好起來的。
辦公室既是營業廳,也是前臺,坐在這裏唐僧就開始琢磨了,該做點什麼呢? 於是開始規劃自己一天的工作了…
先打掃一下衛生間吧,擦擦玻璃,拖拖地,拾掇下桌椅。
剛收拾完,居委會大媽就來收垃圾處理費了,沒辦法,接待吧。給了錢,大媽還得嘮叨幾句,防火啊,防賊啊,好不容易把大媽給送走了。
接下來,該記賬了,剛開業還沒掙呢就花了一筆。
記完賬,想想該給認識的人打個電話,也算招攬一下生意, 跑跑業務啊。 於是又打了一通電話,朋友大都很熱情,很肯幫忙的樣子。放下電話,唐僧又覺得啥事也沒成。
到中午了,肚子開始鬧情緒了,只好先安撫它吧,於是訂了個盒飯吃了。
下午,唐僧百無聊賴地坐了會兒,想寫點兒什麼,沒紙也沒筆,想起來要買些辦公用品,好歹是個公司啊。
買完東西,回來把賬一記,時間也差不多了,就鎖了門,結束了當老闆的第一天工作。想想也挺好,至少自己的事自己說了算啊。
就這樣,唐僧熬了三個月,每天上班,開門,打掃衛生,接待各方來的大爺大媽們,打電話聯繫業務,買東西,偶爾也去人才市場看看,找點兒當老闆的感覺,雖然沒錢招人,但總得準備着吧。日子很快就過去了,三個月一分錢沒賺,倒貼出去兩萬塊。
三不月後,豬八戒想要一套書送給“絲”兒們,這傢伙幾天的時間就把握住了大局,成了名副其實的“吐”星,也擁有了衆多的“吐絲兒”。於是豬八戒想給他的衆多“吐絲兒”點兒回報,就委託唐僧出了一本書, 要有點兒新意。這倒幫了唐僧,不但添了原有的窟座,還賺了不少。
更沒想到從此一發不可收拾, 業務一單又一單,錢賺了一筆又一筆。唐僧現在最忙的不是業務,而是招聘人才。
先招個保潔,當老闆了總不能自己打掃衛生吧,開門關門、打掃衛生、打水、送水都是保潔的事;再招個祕書,幫自己打理日常的業務,接電話,接待每天大爺大媽的事就歸祕書幹吧;再後來事情越來越多,祕書也忙不過來了,就招業務經理,招業務員,招保安,招財務,招人力資源經理。沒兩年的時間,公司已經有50多人了,唐僧自己也成了名副其實的百萬富翁。
唐僧現在發現自己每天考慮得最多的問題就是人的問題。有人抱怨自己做的都是別人該乾的事,有人抱怨別人不配合,有人抱怨別人搶了自己的事。在自己一個人的時候,一切都很簡單,那時沒有多少事情,所以怎麼都行。現在再想單打獨鬥是不可能的了,現在最講究的是管理,如何安排人,如何調整人與人的關係成爲唐僧現在每天必須要解決的問題,以後公司的人還會更多,關係還會更復雜,公司也會發展得更大,這都是必然。
幾年後,唐僧想自己也算小有成就,該參加個什麼評選賽的。十大傑出青年是沒份了,歲數太大。年度經濟人物評選還不夠資格,人家玩的都是億。最後選來選去,選了最佳面向對象程序設計師。

二、面向過程到面向對象的思維轉換

故事雖然沒有什麼現實意義,但卻最好地解釋了面向過程到面向對象的思維轉換的過程。下面來具體分析面向過程與面向對象之間的區別。

(1)面向過程

面向過程是分析出解決問題所需要的步驟,然後用函數把這些步驟一步步地實現,使用的時候一個一個依次調用。
面向過程考慮的是我們要做什麼。就像沒錢的唐僧,每天考慮的事就是做什麼。如下所述:
(1)打掃衛生。
 擦玻璃
 拖地
 拾掇桌椅
(2)接待客人。
 接待居委會大媽
 交垃圾處理費
 把大媽給送走
(3)記賬。
(4)跑業務,打電話。
(5)買辦公用品。
(6)記賬。
(7)下班鎖門。
這就是一個典型的面向過程的生活。總體看下來,這一天是由七件事組成的,前兩件事又是由若干件小事組成的。在面向過程的程序設計中,“事”是用函數來實現的,所以我們可以把沒錢的唐僧一天的生活用程序描述如下:

void CleanTheWindow(){
    }
    void CleanTheFloor(){
    }
    void CleanTheDesk(){
    }
    void Takein(){
    }
    void Pay(){
    }
    void Packoff(){
    }
    void DoCleaning(){
        CleanTheWindow();//清潔窗戶
        CleanTheFloor();//清潔地板
        CleanTheDesk();//清潔桌子
    }
    void DoReception(){
        Takein();//接待
        Pay();//付款
        Packoff();//送人
    }
    void KeepAccounts(){
    }
    void DoBussiness(){
    }
    void BuySomething(){
    }
    void LockTheDoor(){
    }
    void WorkofOneDay(){
        DoCleaning();//保潔
        DoReception();//接待
        KeepAccounts();//記賬
        DoBussiness();//跑業務
        BuySomething();//採購
        KeepAccounts();//記賬
        LockTheDoor();//鎖門
    }

從上述一段代碼可以看出:
 一件事就是一個函數:

void KeepAccounts(){//記賬
    }

 處理一件事就是調用一個函數:

   KeepAccounts();//記賬

 幾個小事執行下來就是一件大事:

 void DoCleaning(){
        CleanTheWindow();//執行清潔窗戶
        CleanTheFloor();//執行清潔地板
        CleanTheDesk();//執行清潔桌子
    }

(2)面向對象

面向對象是把構成問題的事務分解成各個對象。建立對象的目的不是爲了完成一個步驟,而是爲了描述某個事務在整個解決問題的步驟中的行爲。
唐僧能從沒有錢的老闆轉變成百萬富翁,是因爲他很好地遵循了面向對象的思想,並充分利用了它。一起來看看他是如何實現轉變的:
(1) 招保潔。
開門關門
打掃衛生
打水
送水
(2) 招個祕書
打理日常的業務
接電話
接待大爺大媽
(3) 招業務經理
(4) 招業務員
(5) 招保安
(6) 招財務
(7) 招人力資源經理
到最後人員越來越多,公司也就逐漸壯大起來。而唐僧每天必須解決的問題變成了如何管理人,如何安排人,如何調整人與人的關係。現在我們一起通過程序來看看唐僧咋做的:

    class Dustman{//保潔員
        void openTheDoor(){//開門
        }
        void dightSanitation(){//打掃衛生
        }
        void acceptWater(){//打水
        }
        void givewater(){//送水
        }
    }
    class Secretary{//祕書
        void neatenOperation(){//打理業務
        }
        void liftTheTel(){//接電話
        }
        void receivePepole(){//接待人們
        }
    }
    class OperationManager{//業務經理
    }
    class OperationEmployee{//業務員
    }
    class Triggerman{//保安
    }
    class Finance{//財務
    }
    class ResourceManager{//人力資源經理
    }

可以看,面向對象是以功能來劃分問題,而不是步驟。在程序中,可以用一個類來創建一個對象。比如保潔員類,就可以創建一個對象:

class Dustman{//保潔員
        void openTheDoor(){//開門
        }
        void dightSanitation(){//打掃衛生
        }
        void acceptWater(){//打水
        }
        void givewater(){//送水
        }
    }

由於功能上的統一保證了面向對象設計的可擴展性,所以如果公司在後期繼續壯大,出現一個國際交流中心,就可以這樣寫:

class ItnCommunionCenter{
    }

三、總結

面向對象編程是Java得核心,它使得軟件具有更強的適應能力,後續會寫面向對象編程的三個重要原則:封裝、繼承、多態性。
學習從點滴開始,學到的東西可能會忘記,記得點贊收藏哦
在這裏插入圖片描述

System.out.println("我選擇滑稽取寵");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章