物件:屬性+方法
類是指:描述一種事物的定義,是個抽象的概念
例項指:該種事物的乙個具體的個體,是具體的東西
聯絡類是現實世界或思維世界中的實體在計算機中的反映,它將資料以及這些資料上的操作封裝在一起。
物件是具有類型別的變數。類和物件是物件導向程式設計技術中的最基本的概念。[1]
類是物件的抽象,而物件是類的具體例項。類是抽象的,不占用記憶體,而物件是具體的,占用儲存空間。類是用於建立物件的藍圖,它是乙個定義包括在特定型別的物件中的方法和變數的軟體模板。
打個比方:
「人」是乙個類。「張三」是人類的乙個具體例子
在程式設計時也是同樣的道理,你先自己定義乙個「類」,當你需要用時,用「類」的定義來創造乙個具體的例子。
用類的定義來建立乙個例項,就叫做類的例項化。
舉個很簡單的例子,你建立了乙個老虎的類,老虎那麼多,你咋知道是哪只老虎,等你例項化,就定位到某只老虎身上了。這只老虎就有了老虎的共同屬性,像體重啊,身長啊,顏色啊。那些屬性的屬性值就是這只老虎的特徵。
過程
person p = new person();
1,jvm會去讀取指定路徑下的person.class檔案,並載入進記憶體,
並會先載入person的父類(如果有直接父類的情況下)
2,在堆記憶體中開闢空間,分配位址。
3,並在物件空間中,對物件中的屬性進行預設初始化
4,呼叫對應的建構函式,進行初始化
5,在建構函式中,第一行會先呼叫父類中的建構函式進行初始化。
6,父類初始化完畢後,再對子類的屬性,進行顯示初始化。
7,指定建構函式的特定初始化
8,初始化完畢後,將堆記憶體中的位址值賦給引用變數。
為什麼要物件導向
一 物件導向,這個物件到底是什麼?這個物件不是c 中的例項,c 中我們把乙個類的例項也叫做物件,這種物件嚴格的說應該是物件導向的程式設計實現 oop 中的物件,物件導向程式設計,也不是面向類的例項程式設計。物件的定義是人們要進行研究的任何事物,從最簡單的整數到複雜的飛機等均可看作物件,它不僅能表示具...
為什麼要元件化
工程任何一點改動都會造成整個工程的重新編譯.記憶最深的就是早期在沒有進行元件化的時候,龐大的工程動輒需要十幾分鐘的編譯時間,一杯茶的時間就出來了,很多時候,不得不眼巴巴的等著,儘管現在可以使用facebook出品的buck以及來自阿里的feeline來加速編譯過程,單仍然不夠.整個工程中充斥的大量重...
四 為什麼要物件導向
面向過程和計算機如影隨形,從計算機誕生之日起,面向過程一直佔主導地位。c語言 作業系統 協議棧 驅動系統 都是面向過程的代表。為什麼會有物件導向誕生並流行呢?面向過程是可以看作是流水線,那麼流水線有個缺點 流水和原料是相對固定的,擴充套件起來很麻煩。比如啤酒生產線,操作的原來是啤酒原料,生產的步驟是...