Java學習 · 初識 面向對象基礎一
面向對象基礎
1.1面向過程與面向對象的區別
面向過程和面向對象二者都是思考問題的方式,再簡單的事物時,可以線性思考時使用面向過程,但當事物較為復雜時,只能使用面向對象設計。但二者並不是對立的,在解決復雜問題時,通過面向對象的方式把握事物之間復雜的關系,方便分析整個系統;具體到微觀時,仍然使用面向過程設計。
以開車為例,面向過程中思考
- 有一輛車
- 駕駛員上車
- 掛擋踩離合
- 車開動
而面向對象中思考
- 有車、駕駛員這兩個個對象
- 車擁有掛擋離合這幾個方法(還擁有屬性,如性能外觀)
- 人擁有掛擋踩離合這幾個方法(同樣擁有屬性)
1.2 對象與類
對象是具體的事物,而類是對對象的抽象,如小明小紅是對象,而人則是對小明小紅的抽象,即類。
生活案例:上海大眾汽車是類,你購買的其中的一輛即對象。
對象的三個特征:
- 對象的行為(即方法)
- 對象的狀態(即屬性)
- 對象標識
類之間的三種關系:
- 依賴(uses-a)
- 聚合(has-a)
- 繼承(is-a)
1.3 定義與使用類
類的組成:屬性(field),方法(method),構造方法(construtor),其他如代碼塊,內部類;
類的屬性(成員變量):用於定義該類所含數據或靜態屬性
1.定義格式:【修飾符】 屬性類型 屬性名 = 默認值
(如不初始化則使用默認值)
2.局部變量和成員變量
3.引用類型
Java中的對象和數組即通過引用對其操作的
a) 可以理解為受限的指針
b) 但引用不能進行運算,只能賦值
c) 引用的本質是對象,指針的本質是地址
類的方法:
- 定義格式:
[修飾符] 返回類型 方法名(參數){代碼塊}
- 方法調用:對象.成員方法
形參和實參
參數傳遞:(Java中都是按值傳遞)
3.構造器:
- 定義:constructor 構造方法 創建對象時被調用
- 作用:為成員變量初始化
- 特點:
a) 方法名與類名一致
b) 不能定義返回類型
c) 通過new調用
d) 如果沒有定義構造器,系統則有默認的無參數構造方法
e) 可重載
- this關鍵字
this表示當前對象本身的一個引用
使用this:
a) 普通方法中:區分類的成員屬性和形參
b) 構造方法中:來調用其他構造方法
必須位於第一條語句
c) Static 不能使用
Static關鍵字
- 同static聲明的成員變量為靜態成員變量
a) 公用變量,被類的所有實例使用
b) Static成員變量只有一份,被共享
c) 通過類.類屬性調用
- 用static聲明的方法為靜態成員變量
a) 不需要對象即可調用方法
b) 在調用該方法時,不會傳遞引用對象,即static方法不可訪問非static變量
c) 不可以使用this,super關鍵字
靜態初始化塊
Java學習 · 初識 面向對象基礎一