封裝就是將物件執行所需要的資源封裝在程式物件中,並給外界公布介面,這樣很複雜的邏輯經過包裝之後給其他類使用就很方便,其他類不需要關心你裡邊的功能是以哪種方式實現的,只要傳入需要的引數就可以得到想要的結果。
例如:我們要看電視,只需要按一下開關和換台就可以了,有必要了解電視機內部的結構嘛?製造商為了我們方便使用電視機,把複雜的內部結構全部封裝起來,只給我們暴露簡單的介面,比如電源開關。至於電視機內部的結構,怎麼實現的功能,這我們不需要操心。
對此,就是說需要讓使用者知道的我們才暴露,不需要讓使用者知道的全部要隱藏起來,這就是封裝。簡單來說就是,「你不要告訴我你是以那種方式實現的,只要能做到就可以了」。
(1)提高**的安全性,就是說我只給外界暴露盡可能少的東西,這樣對內部是比較安全的,同時也避免了在外部無意的破環,保護了內部的資料
(2)提高**的復用性。就是說比如在遇到這個問題,我不使用封裝,那麼解決了這個問題,在下次又遇到的類似的問題還要繼續再敲一遍**嗎?所以**封裝以後,我i就再給他乙個介面,或者少許的修改一下就可以了
(3)「高內聚」,是指類的內部資料操作細節我們自己完成,不允許外部干涉。我們將內部的細節封裝,隱藏起來,這樣不僅便於後期內部**的修改,更是提高了可維護性。
(4)「低耦合」,是指僅需暴露少量的方法給外部使用,盡量方便外部使用。就是說簡化外部呼叫,便有呼叫者使用,便於擴充套件和協作。
(1)建立你需要的類:解決方案資源管理器=》新增=》選擇類=》設定你需要的建立類的名字=》確定
(2)在程式主入口建立你需要的物件,注意物件型別和你的類名一直,物件名要有意義
student stu = new student("張三",14,"男");//例項化乙個student物件,並傳遞值給建構函式
(3)在類中建立你需要的字段並進行封裝為屬性,並且在外部可以進行獲取和修改
class student
//這就是將字段封裝為屬性 private表示設定屬性的值只能在本類中修改,外部沒有許可權修改,這能獲取
//將 private去掉後外部就可以進行修改
public int age private set }
public string name private set }
public string *** set }
此時,使用者是無法在外部給屬性中的字段賦值的,只能讀取/獲取
console.writeline(stu.name + "" + stu.age + "" + stu.***);//獲取物件的屬性中的字段的值
這個過程就是封裝,只是給外部留有乙個介面用來獲取或設定。我們的資料都被封裝,外界不知道,它只能使用,所以是比較安全的。
1、保護字段/資料,這個字段/資料我不想讓外界使用者知道,就使用封裝
2、但是可以讓外部修改它,這個時候就使用到封裝(屬性封裝)
3、這個字段/資料我要限制使用者輸入的值,比如說這個欄位是***性別,只能輸入男和女,超出了這個範圍就沒有資料,所以我們要限制使用者輸入的內容,這個時候就使用封裝
4、就是只提供這個資料可以給使用者外界使用,但不能修改它,此時就用到的封裝
物件導向中 封裝的理解
封裝是保證軟體部件具有優良的模組性的基礎,封裝的目標就是要實現軟體部件的 高內聚 低耦合 防止程式相互依賴性而帶來的變動影響。在物件導向的程式語言中,物件是封裝 的最基本單位,物件導向的封裝比傳統語言的封裝更為清晰 更為有力。物件導向的封裝就 是把描述乙個物件的屬性和行為的 封裝在乙個 模組 中,也...
專案中封裝的axios
把每個一級選單按照模組去區分在urls檔案中進行統一管理 把get 和post請求進行攔截,以此進行方便頁面傳參,get和post傳參方式一樣方便使用。main.ts中 import post from apis index vue.prototype.post post 掛載到全域性將 postr...
Vue中封裝input元件
最近有點忙不過來 脫了很久,沒有更新 抱歉。今天要將的時如何自定義封裝input元件 博主知識發個簡單的模板 碼友們可以更具自己的實際專案新增需要的引數 我的專案中的ui圖是這樣的 如下 子元件的模板設定 completion input box input box name type text r...