天天看點

java随筆面向對象

1 面向過程程式設計和面向對象程式設計

1) 面向過程程式設計, 實作某個功能時,使用函數之間互相調用完成的。函數之間的關聯性很強。

當功能發生改變時,需要重寫新編寫函數。

2) 面向對象程式設計,實作某個功能時,把實作的方式拟人化,通過調用各個對象的功能來實作要求。

蓋房子:

打地基

砌牆

蓋房頂

1 過程

定義方法: 打四方形地基的方法

砌四方形牆的方法

蓋四方形的房頂的方法

蓋房子的方法(){ //四方法的房子。

打四方形地基的方法

2 對象:

打地基的人{

打地基的方法;

砌牆的人{

砌牆的方法

}

蓋房頂的人{

蓋房頂的方法;

蓋房子(打地基的人,砌牆的人,蓋房頂的人){

打地基的人.打地基的方法

砌牆的人.砌牆的方法()

蓋房頂的人.蓋房頂的方法()

2 面向對象程式設計

核心“對象"

1) 什麼 是對象? “萬物皆對象"

現實世界裡每個實實在在存在的個體==》對象

2) :如何把現實中的對象 ==》抽象==>程式中的對象

對現實的對象==》歸類 ==》在程式定義類 ==》 建立程式中的對象

歸類:把具有相同特征和相同行為的一組對象歸為一類。==》類名

相同特征 (靜态屬性):屬性

相同行為(動态屬性): 成員方法

每個對象有自己特有的屬性值。 =》屬性屬于對象所有。

成員方法 : 屬于對象所有。

一 類:

具有相同屬性和方法的一組對象的統稱。抽象的,概念性

類規定了程式中的對象所具有的屬性和方法。

二類:

類是自定義的資料類型。 ==》引用資料類型

二者的關系 :

類:是抽象的。有一組相同屬性和方法的對象抽象而得。

對象是具體的。 是類的具體化表現

一 面向對象分析 (OOD)

學生類:

屬性:學号,姓名,性别,年齡,聯系方法,家庭位址,

方法:學習,自我介紹

僅保留與項目相關的屬性和方法

1) 找到類

2) 找到屬性

3) 找到方法

二 面向對象設計

類圖 ---》 UML(統一模組化語言)

三 面向對象程式設計

一 定義類的文法:

通路修飾符 class 類名{

//屬性

//方法

1 通路修飾符 public (所有包可見), 預設的(僅目前包可用)。

2 類名 , 首字母大寫。見名知義。

3 屬性: 屬于對象所有 ->成員變量

資料類型 屬性名;

資料類型 :基本類型,引用類型(類,數組,接口)

屬性名: 第一個單詞首字母小寫,其他單詞首字母大寫。見名知義

注意:屬性有預設值:

基本類型屬性值:

byte,short,int ,long :0

float double : 0.0

char : \U0000

boolean : false

引用類型: null

4 方法: 屬于對象所有 ==》成員方法

通路修飾符 傳回值類型 方法名(參數清單){

方法體;

1) 通路修飾符 : public ,預設的, private ,protected

2) 傳回值類型 :方法執行結束後,傳回的資料類型

無傳回:void

3) 方法名 : 第一個單詞首字母小寫,其他單詞首字母大寫。見名知義

4) 參數清單 :執行方法時需要的資料。

5) 方法體 :完成此方法的代碼。

注意: 在成員方法中,可以通路屬性

一 建立對象: 執行個體化對象

類名 對象名 = new 類名();

Student stu = new Student();

注意:對象名又稱為引用名,存儲是所引用對象的"位址";

二 通路對象的屬性 和方法

1 給屬性指派:

對象名.屬性名 = 值;

2 取屬性的值:

對象名.屬性名;

3 通路對象的方法

對象名.方法名(參數);

java随筆面向對象

一 步建立對象

類名 對象名 = new 類名();

二步 通過 .通路對象的屬性和方法

1 通路屬性

對象名.屬性名

2 通路方法

一 java.lang.NullPointerException

:空引用異常

當引用類型的變量沒有引用資料時,而是null

調用對象的屬性和成員方法,則引發此異常

屬性:成員變量 :可以類中所有成員方法中通路

局部變量 :在方法中定義的變量,形參,在條件結構或循環結構中定義的變量 { }

1 預設值, 屬性有預設值 ,局部變量沒有預設值 ,局部變量在使用前必須指派

2 作用域不同,屬性在類中任何成員方法中使用,局部變量僅可以定義的方法中使用。

3 優先級 ,當方法中有與屬性同名的局部變量時,局部變量的優先高于屬性。==》就近原則

在方法中區分屬性與局部變量,在屬性的前面加this.屬性名;

構造方法:

1 構造方法的文法:

通路修飾符 構造方法名(參數清單){

注意事項:

1 構造方法名稱必須與類名同名

2 構造方法沒有傳回值類型。也不能寫void.如果寫了void則不再是構造方法

2 構造方法的作用

構造對象并初始化屬性值

3 何時使用構造方法:

建立對象時使用構造方法,與new關鍵詞一起使用。

4 構造方法的分類:

隐式構造方法:如果類中沒有定義任何構造方法,則系統給類提供一個public的無參構造方法;

顯示構造方法:在定義類時,編寫構造方法;此時系統不再提供構造方法

無參構造方法

有參構造方法

注意: 如果在類中定義構造方法,則系統不再提供無參構造方法;

是以在類中定義有參構造方法時,建議同時定義一個無參構造方法。

一 方法的重載 (overload)

1 在同一個類中

2 方法名相同,但參數不同的方法 == 》 方法重載

3 參數不同(個數,類型不同,順序不同)

4 與形參的名稱無關

5 與傳回值類型無關

6 與通路修飾符無關

二 :好處

1 友善調用,增強代碼的可讀性

2 實作方法調用的多态:

一個方法名,根據參數的不同的執行不同的操作

三 哪些方法可以重載:

1 構造方法

2 成員方法

3 靜态方法

this是什麼?

this是一個引用,存儲是目前正在運作的對象的"位址"

this在目前對象内部引用目前對象

每個對象内部都有一個this

2 this可以用在哪些地方? 在類中使用

在類的成員方法中使用

在類的構造方法中使用

3 如何使用this?

1) 在成員方法中使用,可以通路屬性和成員方法

this.屬性名 :

this.成員方法名(參數);

2) 在構造方法使用,可以通路屬性和成員方法,

this.屬性名

this.成員方法名()

3)在構造方法中,通路同類其他的構造方法

this(參數); ==》通路同類的其他構造方法 ,此行代碼寫在構造方法的第一行

this(); -->調用同類中無參的構造方法

好處 : 代碼的複用

類 封裝了對象的屬性和方法

方法 封裝方法的實作細節

一. 封裝屬性:

1 屬性私有化

2 給屬性提供公共的方法 :指派方法(setter方法)與取值方法(getter)方法

指派方法 : 無傳回值,但帶有參數(類型與屬性的類型一緻)方法

方法名: set屬性名(參數){} ,把屬性名的首字母改為大寫

public void setSex(String sex){}

取值方法 : 有傳回值(與屬性類型一緻) 無參的方法

方法名: get屬性名(){} ,把屬性名的首字母改為大寫

public String getSex(){ return sex}

注意 :如果屬性的類型為boolean則get方法改為:is屬性名(); 把屬性名的首字母改為大寫

3 在set方法中添加控制語句

二. 使用封裝的好處:

1 保證資料的安全性

2 代碼可重用性

3 友善修改

一 通路修飾符:

public :公共 的

protected : 受保護的

預設的: (不寫任何修飾符)

private :私有的

二 修飾類:(不指内部類)

public ,預設的

三 修飾變量(不包括局部變量),修飾方法

public ,protected,預設的,private

java随筆面向對象

 一  繼承  extends  

java随筆面向對象

繼承的優點 : 實作代碼的複用及功能的擴充

類圖:

二 、 java.lang.Object :是所有類的超類

定義類沒有繼承自任何一個父類,則預設繼承Object

三 在java中繼承的特點

一個子類僅可以有一個直接父類 ==》 “單一繼承"

可以”多重繼承"

四、子類可以繼承父類的哪些内容

1 可以繼承父類成員屬性和成員方法(注意通路權限)

2 不繼承父類的構造方法

3 子類除了繼承父類的内容,還可以有自己特有的屬性和方法

五 建立子類對象會調用父類的構造方法嗎? 如果會調用,先調用父還先調用子類?

會調用父類的構造方法。先調用父類的構造方法再調用子類的構造方法。

六 如何在子類的構造方法中調用父類的構造方法的?

在子類的構造方法中,第一行調用父類的構造方法:

super(參數);

如果調用父類的無參構造方法:

super(); //可以省略不寫

注意:

1 如果子類中沒有顯示的調用父類的構造方法,則預設調用父類的無參構造方法

2 如果在子類調用父類的帶參構造方法,則必須在子類的構造方法第一行:super(參數)

3 如果父類中僅有帶參構造方法,則子類的所有構造方法中必須顯示的調用父類的有參構造方法;

七、 在java的程式中任何類之間都可以繼承嗎?

1) 從文法上說,可以。

2) 從語義不可以。 有“is-a"的關系 : 子類 是一個父類

父類如何得到的?

類 : 由現實的具有相同屬性和相同方法的一組對象 抽象而得。

父類 : 由具有相同屬性和相同方法的一組類抽象面得的。

程式設計: 父類 ==》 子類 ==》對象