1. 程式人生 > >第五章:面向對象1

第五章:面向對象1

沒有 值傳遞 默認 封裝性 軟件開發 大型項目 語句 開發思想 實現

面向對象和面向過程的區別

兩者都是軟件開發思想,先有面向過程,後有面向對象。在大型項目中,針對面向過程的不足推出了面向對象開發思想。
區別
1. 編程思路不同: 面向過程以實現功能的函數開發為主,而面向對象要首先抽象出類、屬性及其方法,然後通過實例化類、執行方法來完成功能。
2. 封裝性:都具有封裝性,但是面向過程是封裝的是功能,而面向對象封裝的是數據和功能。
3. 面向對象具有繼承性和多態性,而面向過程沒有繼承性和多態性,所以面向對象優勢是明顯。

對象

對象:客觀存在的實體(一個具體的事物)。
萬事萬物皆對象。
具體的個體

類:具有相同特征和共同行為對象的集合。是人類腦海中一個抽象的概念,代表的是一種"共性".
類的組成部分:
屬性:外部特征
方法:功能行為。
構造方法:為成員變量初始化。

如何定義一個類:

[修飾符] class 類名{
//屬性
//構造方法
//方法
}

如何訪問類中成員

類中的成員:屬性和方法

1.先創建對象(創建實例),使用new關鍵字創建對象
類名 對象名 = new 類名();
Dog dog = new Dog();

訪問屬性:對象名.屬性
dog.name="旺財";

訪問方法(調用方法)
1.靜態方法(使用static修飾方法):類名.方法名()
2.實例方法(非static修飾的方法):對象名.方法名()

變量的作用域

變量聲明的位置不同會導致其作用域不同。
局部變量:在方法內部聲明的變量,其作用域僅限於當前方法使用。
成員變量:在類中聲明的屬性,其作用域可以在當前類中使用。

區別:
1.作用域不同:成員變量的作用域是在整個類體,局部變量的作用域在當前方法
2.是否有默認初始值:成員變量是有默認的初始值,局部變量沒有默認初始值。
* eg:int類型默認初始值為0 double類型默認初始值為0.0 boolean類型默認為false String默認為null
* 3.是否能使用修飾符(public/private/protected/默認):成員變量:可以添加public等修飾符,局部變量不能。
* 4.在內存中保存的位置不同:成員變量保存到堆中,局部變量保存到棧。

構造方法

構造方法的特征:
1.方法名必須與類名相同
2.沒有返回值類型
構造的作用:為成員變量賦初始化值
構造方法也是可以重載的。

如何調用:使用new關鍵字進行調用。

this關鍵字

this關鍵字:代表當前對象本身
1.用於區分成員變量和局部變量。
2.可以使用this調用方法或屬性.
this.方法名()或this.屬性
3.可以使用this調用構造方法,必須作為構造方法的第一行語句。

值傳遞和引用傳遞

數據類型可以分為基本數據類型和引用數據類型
基本數據類型:
整型: byte,short,int,long
浮點型: float,double
字符型: char
布爾型: boolean
引用數據類型:類,數組和接口

如果將基本類型作為方法參數屬於值傳遞:方法執行結束後不會保留執行結果。
如果將引用數據類型作為方法參數,屬於引用傳遞,方法執行結束後會保留執行結果。

第五章:面向對象1