什么是OOP
面向?qū)ο蟪绦蛟O(shè)計(Object Oriented Programming汹来,OOP)
?什么是對象
萬事萬物皆對象
對象強調(diào)的是一個具體的個體
例如:楊樹就不是對象勒奇,我家門前第一顆楊樹就是對象。
對象由什么構(gòu)成
對象由狀態(tài)和行為構(gòu)成。
對象的狀態(tài)是指對象的數(shù)據(jù)逻悠,對象的狀態(tài)由變量表示俏站,也叫對象的屬性。
對象的行為是指對象的功能沿盅,對象的行為由方法表示把篓。
例如:
對象是怎么創(chuàng)建的
對象是由類實例化時創(chuàng)建的,因此創(chuàng)建對象必須先定義類腰涧。
類是對象的模板韧掩,類中定義了什么屬性和方法,由這個類實例化的對象就有什么屬性和方法窖铡。
類是一次性定義疗锐,對象可以多次創(chuàng)建。
什么是類
類是具有相同的狀態(tài)和相同的行為的一組對象的集合费彼。
類和對象是什么關(guān)系
類和對象的關(guān)系就如同模具和用這個模具制作出來的物品之間的關(guān)系滑臊。一個類給出它的全部對象的一個統(tǒng)一的定義,而它的每個對象則是符合這種定義的一個實體(也稱作實例)箍铲,因此類和對象的關(guān)系就是抽象和具體的關(guān)系雇卷。
定義類
類的構(gòu)成
類是由屬性和方法構(gòu)成的
類的定義
注意:
1、public類的類名必須和類所在文件的文件名一致
2颠猴、如果不是public類关划,那么類名與類所在的文件名可以不一致
3、類名的命名規(guī)范是:帕斯卡命名法
實例化對象
通過類創(chuàng)建對象的過程稱為類的實例化翘瓮。實例化的結(jié)果是產(chǎn)生了一個實例贮折,實例也叫對象。
實例化對象
語法
new就是實例化的意思资盅,new也是分配內(nèi)存的意思
示例
對象的內(nèi)存分配
使用對象
對象調(diào)用屬性和方法是使用成員運算符.來完成的
對象調(diào)用屬性
對象調(diào)用方法
類和對象的區(qū)別
類是對某一類事物的抽象描述脱货,不是具體的個體
對象是對某一事物的具體描述岛都,是具體的個體
面向?qū)ο笈c面向過程
面向過程與面向?qū)ο蠖际俏覀兙幊讨校帉懗绦虻囊环N思維方式振峻。
面向過程的程序設(shè)計方式
特點是按照步驟思考問題臼疫,強調(diào)步驟。
例如:求班級學(xué)生平均分扣孟,面向過程的做法是
第一步:計算班級總分
第二步:總分除以班級人數(shù)
第三步:顯示平均分
面向?qū)ο蟮某绦蛟O(shè)計方式
特點是分析有什么對象烫堤,對象有什么數(shù)據(jù),對象有什么操作凤价。
例如:求班級學(xué)生平均分鸽斟,面向?qū)ο蟮淖龇ㄊ?/p>
分析有什么對象:有班級對象,有學(xué)生對象
班級對象有什么數(shù)據(jù):班級對象中有多名學(xué)生利诺;班級對象有什么操作:班級對象有計算平均分的操作富蓄。
學(xué)生對象有什么數(shù)據(jù):學(xué)生對象有成績;學(xué)生對象有什么操作:無
現(xiàn)在主流的思想是面向?qū)ο舐猓鴮嶋H的情況是軟件設(shè)計的宏觀層面是面向?qū)ο蟮牧⒈叮⒂^層面依然是面向過程的(方法內(nèi)部的代碼還是按照步驟編寫的)。
OOP有什么特性
1侣滩、封裝:
為了保護數(shù)據(jù)(這里的數(shù)據(jù)指的是對象的屬性口注,而不是方法的局部變量)通過不同的訪問修飾符來決定數(shù)據(jù)的讀寫權(quán)限。
訪問修飾符:
public:公共的 public修飾的屬性沒有訪問限制君珠,是最寬松的封裝寝志。
protected:受保護的 protected修飾的屬性同包的類和子類都能訪問。
默認修飾符——default:(什么都不寫)只有同包的類能夠訪問策添。
private:私有的? private修飾的屬性只能在類中被訪問材部,類外無法訪問,是最嚴(yán)格的封裝唯竹。
(private不能修飾類)
2败富、繼承:
子類 extends 父類
子類可以調(diào)用父類的方法和屬性,也可以有自己新定義的方法和屬性摩窃,子類是對父類的拓展兽叮。
繼承的出現(xiàn)提高了代碼的復(fù)用性,提高了軟件的開發(fā)效率猾愿。
繼承也讓類與類之間產(chǎn)生了關(guān)系鹦聪,提供了多態(tài)的前提。
3蒂秘、多態(tài):
通過父類引用指向子類對象泽本,實現(xiàn)了同樣的代碼每次會生成不同的結(jié)果(無法做出具體預(yù)測)
實現(xiàn)方法:
1、方法重寫(公認的多態(tài))
2姻僧、方法重載(非公認的多態(tài))
什么是方法重載
方法重載的定義
在同一個類中:同名不同參规丽,與返回值無關(guān)蒲牧。
例如:
方法重載的調(diào)用
方法重載根據(jù)參數(shù)匹配原則進行調(diào)用