面向對象是一種以「對象」做爲中心的編程思想,其中對象的含義能夠理解爲「存在的東西」。程序員
與面向過程的方法相比,面向對象再也不侷限於計算機的機器本質,而更加側重於對現實世界的模擬。面向過程的方法中,有一套設計嚴格的操做順序,有一個相似中央控制器的角色來進行統一調度;而面向對象的方法中,並無明確的中央控制的角色,也不須要指定嚴格的操做順序,而是設計了不少對象,而且指定了這些對象須要完成的任務,以及這些對象如何對外界的刺激作出反應。算法
若是說面向過程像一條流水生產線,那麼面向對象就像是一個足球隊。沒有哪一個人可以在一場比賽開始的時候,就精確指定每一個隊員的每一次跑動,每一次出腳,每一次傳球。。。。。。而只能指定隊員的角色(前鋒、中場、後衛、門將),而後由隊員門本身根據狀況作出反應。因此世界上有兩個同樣的生產線,但絕對不會存在兩場如出一轍的比賽。編程
面向對象這種對現實世界的模擬的思想,其本質上就是「人的思想」,這是一個質的飛躍,意味着程序員能夠按照人的思想來觀察、分析、設計系統。數據結構
什麼叫作「人的思想」?你能夠放下書本,關上電腦,站起來,環顧四周,你看到的是什麼?多是你的同事、桌子、牆、電腦、花盆;或者是電話、窗子、書本。。。。。。怎麼樣,這些都是「對象」吧?除了觀察目標聚焦於「對象」外,當咱們觀察人類世界各類事情的運做的時候,咱們也不知不覺的聚焦於「對象」。例如,一個公司的運做,由董事長、經理、主管、員工等人分工合做,根據不一樣的任務或者外界競爭而去作各類各樣的事情。設計
人大部分的時間都是按照面向對象的方式進行思考的,並且人類世界主要也是按照面向對象的方式進行運轉的,因此說,「面向對象」其實更加符合人的思惟習慣。對象
面向過程當中有「程序=算法+數據結構」的經典總結,面向對象也有相似的總結:「程序=對象 + 交互」。其中對象就是具體存在的事物,而交互則是事物之間的相互做用、互動等。圖片
以下是一張醫院的組織結構圖,形象的說明了面向對象的處理方式: it