類和物件的概念

2021-05-27 23:35:06 字數 1594 閱讀 1990

物件導向思想**於對現實世界的認知。現實世界繽紛複雜、種類繁多,難於認識和理解。但是聰明的人們學會了把這些錯綜複雜的事物進行分類,從而使世界變得井井有條。比如我們由各式各樣的汽車抽象出汽車的概念,由形形色色的貓抽象出貓的概念,由五彩斑斕的鮮花抽象出花的概念等。汽車、貓、鮮花都代表著一類事物。每一類事物都有特定的狀態,比如汽車的品牌、時速、馬力、耗油量、座椅數,小貓的年齡、體重、毛色,鮮花的顏色、花瓣形狀、花瓣數目,都是在描述事物的狀態。每類事物也都有一定的行為,比如汽車啟動、行駛、加速、減速、剎車、停車,貓捉老鼠,鮮花盛開。這些不同的狀態和行為將各類事物區分開來。

物件導向程式設計也採用了類的概念,把事物編寫成乙個個「類」。在類中,用資料表示事物的狀態,用函式實現事物的行為,這樣就使程式設計方式和人的思維方式保持一致,極大的降低了思維難度。

封裝(encapsulation)

製造汽車的過程中什麼人最牛?當然不是焊鋼板的,也不是裝輪胎的,更不是擰螺絲的,而是設計汽車的工程師,因為他知道汽車的執行原理。但是我們開車時,需要知道汽車的執行原理嗎?答案顯然不需要。汽車的執行原理已經被偉大的工程師封裝在汽車內部,提供給司機的只是乙個簡單的使用介面,司機操縱方向盤和各種按鈕就可以靈活自如的開動汽車了。

與製造汽車相似,物件導向技術把事物的狀態和行為的實現細節封裝在類中,形成乙個可以重複使用的「零件」。類一旦被設計好,就可以像工業零件一樣,被成千上萬的對其內部原理毫不知情的程式設計師使用。類的設計者相當於汽車工程師,類的使用者相當於司機。這樣程式設計師就可以充份利用他人已經編寫好的「零件」,而將主要精力集中在自己的專署領域。

介面(inte***ce)

今天你買了一台等離子電視機,你拿出遙控器,操縱按鈕,開始欣賞精彩的電視節目。人們通過遙控器這個介面使用電視機,同樣,人們通過類的介面使用類。程式設計師在編寫類時精心地為它設計介面,而設計良好的介面不但方便其他程式設計師使用,還有利於類的公升級改造。

假設你是乙個環保人士,最近你用節能的螢光燈代替了普通的白熾燈。白熾燈通過加熱電阻絲照亮整個屋子;螢光燈則是啟用空氣中的某些分子的電子能而發光。雖然它們的原理不同,但是它們的功能卻是一樣的——照明。因為兩種燈具有相同的介面,所以你只需擰下白熾燈,然後再擰上螢光燈即可,輕易的實現「零件」的更新換代。同樣,在物件導向程式設計中,只要保持介面不變,你可以任意更改類的實現細節,用乙個設計更好的類替換原來的類,實現類的公升級換代。

現在軟體維護和修改的成本已經佔到了整個軟體開發的80%,類的這一編成思想極大的方便了程式的維護和修改,降低了軟體成本。

物件(object)

作為初學者,比較容易混淆類和物件的概念。類是乙個抽象的概念,物件則是類的具體例項。比如人是乙個類,司馬遷、李白、杜甫都是物件;首都是乙個類,則北京、倫敦、華盛頓、莫斯科都是物件;動畫貓是乙個類,則kitty、grafield和doraemon都是物件

類是抽象的概念,物件是真實的個體。我們可以說kitty貓的體重是1.5kg,而不能說貓類的體重是1.5kg;可以說劉翔在跨欄比賽中奪冠,而不說人類在跨欄比賽中奪冠。一般情況下我們認為狀態是描述具體物件而非描述類的,行為是由具體物件發出的而非類發出的。

現實生活中到處充實著物件,一棟房子、一輛汽車,一頭大象,乙隻螞蟻,乃至一種語言、一種方法都可以稱為物件。

物件導向的概念和類和物件的概念

es6中的物件導向是和其他語言基本比較相似 js正常來說是基於物件語言 很多程式都是基於物件開發 不是物件導向 但是在es6中 我們引入了其他語言中的物件導向 面向過程就是 你需要什麼 寫什麼 物件導向 他就是 你直接封裝好乙個功能 需要的時候 在 呼叫 物件導向的好處 1.避免 冗餘 2.便於後期...

類和物件的概念

類和物件是物件導向程式設計的兩個核心概念 類是對一群具有相同特徵或者行為的事物的乙個統稱,是抽象的,不能直接使用 類就相當於製造飛機時的圖紙,是乙個模板,是負責建立的 物件是由類建立出來的乙個具體存在,可以直接使用 由哪乙個類建立出來的物件,就擁有在哪乙個類中定義的 物件就相當於圖紙 製造的飛機 在...

類和物件的概念

類的構建和使用中描述了部分類和物件的概念,例如構造 析構函式,類函式,下面介紹其他幾種概念。訪問修飾符有 public private protected三種,描述如下 public 公有成員,在類的外部是可訪問的,可以不通過類函式來進行訪問和修改 private 私有成員,在類的外部是不可訪問的,...