封裝
面向對象編程有三大概念:封裝、繼承、多態,今天我們就先從封裝開始講起。
封裝(Encapsulation)是面向對象方法的重要原則,就是把對象的屬性和操作(或服務)結合為一個獨立的整體,並儘可能隱藏對象的內部實現細節。
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的接口。面向對象設計始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。封裝可以讓程序更容易理解和維護,也加強了程序的安全性。封裝給對象賦予了「黑盒「特徵,這是提高重用性和安全性的關鍵。讓開發者關注結果而不用去關注每個細節。
屬性私有後無法直接訪問,private修飾的就叫私有,那如何修改值呢?可以通過set方法。那如何獲取值呢?可以通過get方法。而且Eclipse工具會自動生成這些方法,不用我們寫多省事。
訪問控制符
用來控制一個類,或者類中的成員的訪問範圍。
l 使用原則:儘量使用小範圍
l public 是與其他開發人員的一個契約,約定公開的東西會儘量保持穩定不變
l private 私有隱藏,便於修改
l 不寫修飾符,即默認default
設計原則
一個類常常就是一個小的功能模塊,儘量讓其功能單一,術有專攻。將必須外界知道的內容公開public,對外界不需要知道的內容隱藏private。避免一個模塊直接操作另一個模塊的數據,這樣稱之為耦合度高,如果我們想替換,換個模塊就非常費事。所以設計時我們要遵循高內聚,低耦合的原則。
例如:我們的滑鼠,就是非常典型的好產品。只有兩個按鈕一個滾輪。用戶只能操作這麼點東西,內部怎麼實現的?不知道。例如:滑動滾輪,網頁怎麼就隨之滾動了呢?用戶無需知道,只需要滑動滾輪,網頁隨之上下翻滾就行了。
簡單來說:少public,多private。
重載特點
l 在同一個類中方法名相同
l 參數個數不同
l 參數的個數相同,但類型不同
例如下面都是println()但參數個數有的一個有的兩個,參數類型也不相同,System.out.println( … )
面向對象三大特性
1. 封裝(Encapsulation)隱藏對象的屬性和實現細節,僅對外提供公共訪問方式,將變化隔離,便於使用,提高復用性和安全性。
2. 繼承(Inheritance)提高代碼復用性;繼承是多態的前提。
3. 多態(Polymorphism)父類或接口定義的引用變量可以指向子類或具體實現類的實例對象。提高了程序的拓展性。