面向對象:編程
一. 面向過程和麪向對象的區別:函數
面向過程和麪向對象都是一種編程思想,不一樣的思惟方式
面向過程:"如何完成|如何實現?"而後一步一步實現就能夠了
面向對象:"這件事情應該找誰來完成?"完成的這我的就是對象,不關注實現過程,只關注對象
面向對象依託於面向過程spa
二. 面向對象的優勢對象
1)面向對象的思惟方式更貼近於現實生活的思惟方式
2)面向對象思惟方式更體現於管理者,面向過程體現於執行者
3)能夠將複雜的問題簡單化內存
三. 面向對象提出了2個概念編譯器
以面向對象的思惟方式編程就是讓程序和現實生活產生聯繫
類:一類|系列事物的模板(定義的是一系列事物的共性) 對象:現實生活中真實存在的某個事物
沒有類就沒有辦法建立對象(例如: 沒有圖紙就沒辦法造車)編譯
四. 自定義類:模板
根據一系列事物分析:
第一步分析:手機能作什麼? 打電話,上網,聊天,發信息,聽歌... 動詞,功能--->成員方法定義功能
第二步分析:手機的特徵? 顏色,品牌,尺寸,價錢... 名詞,屬性-->成員變量class
格式變量
pubic class 類名{
//屬性
修飾符 數據類型 變量名=變量值;
//功能
修飾符 返回值類型|void 方法名(參數列表){
方法體;
}
}
注意:成員不加static
new
new建立對象會執行的步驟:
* 1.在堆中爲對象開闢空間,當前類的成員屬性會跟隨對象進入到堆內存並附默認值
* 2.調用構造器爲對象初始化信息(通常爲成員屬性第一次賦值)
* 3.將對象的地址返回給引用
* 構造器|構造方法|構造函數:
* 做用:
* 初始化對象信息
* 定義:
* 修飾符 類名([參數]){
* ....
* }
* 1.沒有返回值類型,沒有void
* 2.能夠根據需求存在return,提早結束方法
* 3.構造器不能和static,abstract,final一塊兒使用
* 調用: * 跟隨new使用,new其中的一步 * 1.若是沒有顯示構造器,編譯器會隱式爲你提供一個空構造 * 2.若是存在自定義構造器,編譯器不會再爲你提供任何構造器, 包括空構造 * 3.定義多個構造器,參數列表不一樣,構成構造器的重載,調用根據()中的實參匹配不一樣的構造器 * 4.構造器的修飾符能夠是private,私有的,只能在當前類中使用這個構造器 * 根據不一樣的需求定義不一樣的構造器,通常都會存在至少一個空構造