上半句+下半句。三流的書籍和部落格只會告訴你上半句,因為它們的作者自己也不知道下半句,而讓我們接近真理,走的更遠的是下半句。並且下半句往往非常簡單。
上半句就是一些半吊子挖出的天坑,就算下半句非常簡單。因為上半句的誤導產生的阻礙,讓無數人很多年也接觸不到講述真理的下半句。
時刻警醒:我們要學習的是講述真理的下半句。
1.什麼是封裝?
封裝:封裝說了2個內容,乙個是裝,乙個是封。
裝:提供了一種聚合方式,提供了一種組合方式。
把東西裝在一起,看作乙個整體。
1.能夠描述乙個事物
事物通常具有屬性和行為,我們通過資料和方法的整體可以描述這樣的事物。
並且相關的資料和方法被放到一起,提高了內部聚合度。
2.裝為我們提供了一種組合方式,我們通過裝可以組合出乙個東西,並且這個東西可以作為元件,繼續組合出其他東西。
能夠表達層次概念,和一些複雜的關係。
3.整體性。(1.用**體現概念 2.方便了使用)
1)用**體現概念,student類。
2)方便了使用:
引數不用再傳遞零散的資料,而是直接傳遞物件。
通過物件直接呼叫操作其內部資料的方法。
封:在裝的基礎上增加了訪問控制,對外只提供公共的訪問介面,其他的資訊被隱藏起來。(上半句)
好處:(下半句)
避免了不必要的耦合,隱藏的資訊對客戶端不可見,不會和客戶端發生耦合。我的**和客戶端**只能通過公共的訪問介面耦合。
當需要修改我們的**時,只要保證公共的訪問介面不變,客戶端**是不需要改變的。
2個特點,乙個是封,乙個是裝。
把存在一定關係的一些東西裝在一起。對外只提供公有的訪問介面,隱藏了內部具體的實現細節。
好處:把相關的東西放在一起聚合度高了。通過訪問控制,只對外提供公有的訪問介面。客戶端只能通過介面來訪問。
只要介面不改變,客戶端就不需要改變,降低了耦合。
我們把具體的實現細節隱藏了。這些東西不需要被客戶端知道,資訊隱藏,更安全。
什麼叫一定關係?
我們描述客觀的事物,事物總是具有一定的屬性和方法,我們可以認為這些屬性和方法相關的,可以放到一起。
因為事物通常具有屬性和行為,單獨用資料,或者方法都無法描述。
裝讓我們可以將資料和方法放在一起,看作乙個整體。這樣乙個整體就可以用來描述事物。
這種方式和單獨用資料+方法的區別:
1.能夠描述乙個事物 2.層次 3.整體性。(1.明確了概念,方便了使用)
1.能夠描述乙個事物:
因為事物通常具有屬性和行為,我們可以用資料和方法的整體來描述事物。
2.基本的東西,裝在一起,產生乙個整體,這個整體可以作為元件來建立另外一些整體。產生層次。
對應於實際,可以用來描述不同層次的事物。
舉個例子:
姓名,年齡,建立乙個學生,學生可以作為乙個元件,來構建新的整體。
3.整體性。
1)明確了概念(在**上): 有乙個名字來表示這個整體。類名,包名。
2)方便了使用。
例子1:我們去菜市場買菜,為啥要個塑膠袋呢。
例子2:如果你給別人一些東西,先給個a,在給個b,再給個......
現在,我直接給你一包東西。然後說你要的都在這裡面。想用啥自己取。
具體表現:類和物件,包。
類:對一類具體事物的抽象。
物件:描述乙個具體的事物。
包:描述的是乙個模組,乙個子系統。
這個可以用來構造不同粒度的概念。
姓名,年齡,建立學生。
多個學生,班級名,建立班級。
多個班級,學校名,建立學校。
基本型別,學生,班級,學校。粒度不斷變大。
物件導向三大特徵之封裝
將屬性封裝起來,不讓外部直接訪問 提供getset方法訪問 package com.lv.am 資料的封裝 資料的實體類物件 除了這個商品的物件 我們還有什麼現實生活中也是這樣來定義乙個實體類 public class goods public void setname string name pu...
物件導向三大特徵 封裝
一 封裝 1 程式的問題 無法保證資料的安全性,同時也無法保證資料的有效性。二 封裝的要求 1 private 私有的,被private修飾的內容只能在類的內部使用public 公開的 2 為私有的屬性提供公開的get set方法。a為屬性賦值 set方法 public void set屬性名 資料...
物件導向的三大特徵 封裝
封裝 encapsulation 通俗的講就是呼叫方僅知道被呼叫方能做什麼,怎麼做的不知道,封裝是物件導向模組化的基礎。通過封裝將物件執行所需的方法和資料封裝在程式物件中,隱藏物件的屬性和實現細節。當這個物件發生有bug時,僅需修改物件內部的方法,不會擴散到程式其它部分。示例 在 程式中在會員生日時...