(Java筆記)物件導向基礎

AllenCode7發表於2020-12-14


一、物件導向

1.1、物件導向思想概述

物件導向(Object Oriented)是軟體開發方法。物件導向的概念和應用已超越了程式設計和軟體開發,是一種對現 實世界理解和抽象的方法,是計算機程式設計技術發展到一定階段後的產物。
物件導向是相對於程式導向來講的,指的是把 相關的資料和方法組織為一個整體 來看待,從更高的層次來進行系 統建模,更貼近事物的自然執行模式。

程式導向到物件導向思想層面的轉變:
程式導向關注的是執行的過程,物件導向關注的是具備功能的物件。
程式導向到物件導向,是程式設計師思想上 從執行者到指揮者的轉變。

1.2、三大思想

物件導向思想從概念上講分為以下三種:OOA、OOD、OOP
OOA:物件導向分析(Object Oriented Analysis)
OOD:物件導向設計(Object Oriented Design)
OOP:物件導向程式(Object Oriented Programming

1.3、三大特徵

封裝性:所有的內容對外部不可見
繼承性:將其他的功能繼承下來繼續發展
多型性:方法的過載本身就是一個多型性的體現


二、類與物件

2.1、兩者關係

類表示一個共性的產物,是一個綜合的特徵,而物件,是一個個性的產物,是一個個體的特徵。
(類似生活中的圖紙與實物的概念。)

類必須通過物件才可以使用,物件的所有操作都在類中定義。
類由屬性和方法組成: ·
屬性:就相當於人的一個個的特徵
方法:就相當於人的一個個的行為,例如:說話、吃飯、唱歌、睡覺

2.2、類的定義格式

class 類名稱{
	成員屬性 
	成員方法
}

2.3、屬性與方法

在這裡插入圖片描述

2.4、物件的建立與使用

在這裡插入圖片描述


三、建立物件記憶體分析

3.1、棧

Java棧的區域很小 , 大概2m左右 , 特點是存取的速度特別快
棧儲存的特點是, 先進後出

儲存速度快的原因:
棧記憶體, 通過 ‘棧指標’ 來建立空間與釋放空間 !
指標向下移動, 會建立新的記憶體, 向上移動, 會釋放這些記憶體 !
這種方式速度特別快 , 僅次於PC暫存器 !
但是這種移動的方式, 必須要明確移動的大小與範圍 ,
明確大小與範圍是為了方便指標的移動 , 這是一個對於資料儲存的限制, 儲存的資料大小是固定的 , 影響了程式 的靈活性 ~
所以我們把更大部分的資料 儲存到了堆記憶體中

儲存的是:
基本資料型別的資料 以及 引用資料型別的引用!
例如:
int a =10;
Person p = new Person();
10儲存在棧記憶體中 , 第二句程式碼建立的物件的引用(p)存在棧記憶體中

3.2、堆

在這裡插入圖片描述

3.3、方法區

在這裡插入圖片描述

3.4、PC暫存器

PC暫存器儲存的是 當前正在執行的 JVM指令的 地址 !
在Java程式中, 每個執行緒啟動時, 都會建立一個PC暫存器 !

3.5、本地方法棧

儲存本地(native)方法的地址 !

四、構造方法(構造器)

4.1、回顧物件建立

Person p = new Person();
在右側Person後面出現的小括號, 其實就是在呼叫構造方法 !

4.2、概述

在這裡插入圖片描述

4.3、定義格式

在這裡插入圖片描述

4.4、構造方法設計

在這裡插入圖片描述

4.5、方法的過載

在這裡插入圖片描述

4.6、構造方法的過載

在這裡插入圖片描述

4.7、匿名物件

在這裡插入圖片描述


相關文章