之前我們已經說過很多次「物件導向」這個詞了,相信大家這會兒對它應該有點熟悉但更多還是陌生吧。
實際上,物件導向是我們比較熟悉的一種方式,或者說,物件導向是一種更加接近我們日常思考方式的一種程式設計思想。
在物件導向出現之前,使用比較多的是面向過程的程式設計思想。面向過程就是將乙個任務拆分成若干個小任務,然後按照一定的順序執行這些小任務就可以完成整個任務。針對性強,開發大型軟體難度高,修改起來比較複雜,可重用性也較差。
而物件導向更加接近我們日常的思維方式,把乙個任務拆分成若干個物件的互動過程,修改容易,重用性更好,更適合開發大型軟體。
簡單來說,面向過程類似於全手工製造步槍,開發人員要會冶金、機械、組裝、測試等技術,把各種原材料做成所需的零部件, 最後生產出一支步槍,技術複雜、效率低;物件導向則類似於現在的**工廠,所有的零部件都是標準化生產的,直接拿來組裝即可,流程相對簡單、效率大幅提高。面向過程是各種技術、操作流程的集合,而物件導向是各種零部件的裝配組合。
如果要詳細對比兩者的區別,就要求我們同時了解這兩類程式語言,而且需要很長的篇幅來描述。但目前我們只介紹了一點點程式設計的知識,所以,目前我們只需要記住一點:物件導向比面向過程更加先進,更容易表寫高質量的軟體。
但這種方便不是沒有代價的,由於提供了很多方便的功能,導致它的底層更加複雜,因此物件導向程式的效能普遍弱於面向過程的程式,好在現在硬體效能非常給力,配合適當的軟體優化(很幸運,大部分軟體優化工作由jdk和jvm的開發者來做),如果不是特別強調效能的任務,我們都可以放心使用物件導向的方式來程式設計了。
任何乙個實體都可以看做是乙個物件(或者多個物件的組合)。我們可以把乙個任務描述成多個物件之間的相互作用。如果這種描述方式令人迷惑,那麼我們來看乙個描述槍戰遊戲的例子:張三拿出狙擊槍,開啟瞄準鏡,對著李四開了一槍(發射一枚子彈)。
加粗字型描述的就是物件。
當我們使用物件導向的思路來處理程式時,就是把程式分解成若干個物件的相互作用。
物件也是一組**,包含了對這個物件屬性和行為的描述,屬性描述這個物件「什麼樣子」,行為描述這個物件「能做什麼」。
我們也不需要描述每乙個物件的屬性和行為,那樣太麻煩了。在現實中,具有相同或相似屬性和行為的多個物件,我們可以把它們歸為一「類」。例如朗逸和思域,這是兩個不同品牌不同型號的汽車,但原理、結構、用途基本一致,我們就會自然而然把它們歸為同型別的汽車。
程式設計時也是如此,對於具有相同屬性和行為的物件,我們先為它們設計乙個類,也可以把「類」理解為「設計圖」或者「模板」,等我們需要物件的時候,讓計算機根據這個類的設計,生成乙個或多個物件就可以了。
我們在eclipse中建立乙個新的專案,叫做project02_01。然後建立乙個class檔案,命名為cat
,**如下:
/*
* 該類用於描述貓這個類別的屬性和行為
*/public class cat
//普通方法,自我介紹
public void introduce()
}
再建立乙個class檔案,命名為main
,同時選中「public static void main(string args)」,建立主方法。**如下:
/*
* 本程式生成兩個cat類的物件,並呼叫它們的自我介紹方法,輸出相應的資訊
*/public class main
}
執行之後,可以看到:
我是乙隻藍色的貓,我叫小叮噹,我今年1歲。
我是乙隻黃色的貓,我叫布斯,我今年2歲。
在這個程式中,我們可以看到,通過型別名 物件名
的形式宣告乙個物件,使用new
操作符生成乙個新的物件,生成物件的具體方法則是其後的cat(……)
。這個和類名相同但多個括號的,就是類的構造方法,它規定了系統如何生成乙個物件。生成的物件通過前面設計好的物件名來引用。生成物件後,使用物件名.方法名
的形式來呼叫自我介紹的方法。我們也可以用相同的形式來呼叫物件的屬性。
好,到這裡,我們可以總結一下了:
類就是物件的屬性和行為的集合
通過new操作符呼叫構造方法來生成乙個物件
生成的物件通過物件名來引用
通過物件名.***的形式來引用物件中的屬性和行為
物件導向的概念
物件導向 他是乙個變成思路,不會改變我們預期的效果 優點 使用物件導向,會讓 的復用性大大提高,便於迭代 特徵 封裝 多肽 繼承 抽象 例 面向過程 小花去餐廳點餐吃飯 物件導向 小花 去 吃 餐廳 點餐 小花.去 餐廳.點餐 小花.吃 建立物件的方法 字面量let obj 通過建構函式和new 結...
物件導向的概念
今天加深了對物件導向概念的理解。以下純屬個人還不太正確的理解,受到學長的啟發 如今的我還是這樣的思想。1 建表。2 邊寫 邊寫方法,邊改資料庫。而更好的物件導向的乙個流程應該如下 這裡只是粗略說明 1 建表 建模型 類 物件 是對物件進行操作,甚至是對物件的陣列進行操作。2 根據需求,根據這個專案需...
物件導向的概念
面向過程是一種程式設計思想,就是前輩程式設計師發現的一種比較好的程式設計方法。過程指的是先幹什麼,再幹什麼,完成一件事情所有需要的具體步驟。優點 把複雜的問題流程化,簡單化,降低開發難度。缺點 擴充套件性差,在當前使用者需求千變萬化的前提下,對擴充套件性的要求非常高 使用場景 不需要擴充套件,或是對...