大白帶你侃JAVA 封裝的概述及好處

2021-09-24 08:25:45 字數 2579 閱讀 2350

封裝是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式

這是什麼意思呢?

簡單的來說就是我將不想給別人看的資料,以及別人無需知道的內部細節, 「鎖起來」 ,我們只留下一些入口,使其與外部發生聯絡。

我們如何給我們的資料 「上鎖」 呢?

我們使用,public、private、protected 等許可權修飾符 在類的內部設定了邊界,這些不同程度的 」鎖「 決定了緊跟其後被定義的東西能夠被誰使用。

·隱藏實現細節,提供公共的訪問方式

·提高了**的復用性

·提高安全性

隱藏實現細節怎麼理解呢?

我們將一些功能封裝到類中,而客戶端的程式設計師,不需要知道類中的這個方法的邏輯原理,類程式設計師只需要給他乙個對外的介面,客戶端程式員只需要能夠呼叫這個方法即可,

例如:夏天宿舍很熱,我們(使用者)只需要操作遙控器即可使用空調,並不需要了解空調內部是如何執行的

提供公共的訪問方式又怎麼理解呢?

我們先來看一段標準案例

public

class

student

//帶參構造

public

student

(string name, int age)

//成員變數的set和get方法(與外界聯絡的橋梁)

public

void

setname

(string name)

public string getname

() public

void

setage

(int age)

public

intgetage()}

複製**

public

class

studentdemo

}複製**

我們可以看到在上面的案例中,成員變數都使用private修飾,而下面的get和set方法均使用了public修飾,其實被private修飾的屬性就是我們想要鎖起來的資料,而set、get方法就是我們開啟這把鎖的鑰匙

被private所修飾的內容是,除型別建立者和型別的內部方法之外的任何人都不能訪問的元素,所以我們這些資料就被我們通過private 「鎖」 了起來,而我們外界是可以通過建立物件來呼叫乙個類中的公共方法的,所以被public修飾的 set和get方法外界所能訪問的,而這兩個方法又可以直接訪問我們的私有成員變數,所以set和get方法就成為了私有成員與外界溝通的鑰匙。

功能被封裝成了類,通過基類與派生類之間的一些機制(組合和繼承),來提高**的復用性

ps:關於**復用問題,我會專篇講解,今天還是著重講解封裝帶來的主要好處

看完上面的**,可能大家會有一點疑惑,這些屬性、方法封裝後我都還可以看得到,這**體現了安全呢?大家來一起看一看我們下面這個改進版的案例

public

class

student

public

student

(string name, int age)

public

void

setname

(string name)

public string getname

() //在setage()方法中加入了校驗的內容

//不合法資料是不允許傳遞給成員變數的

public

void

setage

(int age)

else

}public

intgetage()}

複製**

public

class

studentdemo

}複製**

我們用private來修飾我們的成員變數不是沒有任何依據的,如果我們的成員變數修飾符改為public,這句意味著外界可以使用物件直接訪問,修改這個成員變數,這可能會造成一些重大的問題

例如:外界通過物件去給成員變數賦值,可以賦值一些非法的資料

這明顯是不合理的。所以在賦值之前應該先對資料進行判斷

studendemo是乙個測試類,測試類一般只建立物件,呼叫方法

所以這個判斷應該定義在student類中。需要使用邏輯語句

邏輯語句應該定義在方法中。所以在student類中提供乙個方法來對資料進行校驗

但是如果偏偏不呼叫方法來賦值,還是直接賦值,這樣我們的方法就沒有起作用

所以我們必須強制要求使用我的方法,而不能直接呼叫成員變數

這也正是我們使用private修飾成員變數的原因!

如果能幫到你的話,那就來關注我吧!

在這裡的我們素不相識,卻都在為了自己的夢而努力 ❤

零基礎小白 帶你從頭到尾的細緻了解DHCP協議

dhcp基本背景 1.1.前言 dhcp協議 2.1.dhcp的介紹 dhcp dynamic host configure protocol,動態主機配置協議 從bootp bootstrap protocol 協議發展而來 udp封裝,伺服器 67,客戶端 68 動態分配tcp ip資訊 ip位...

Java之類的封裝

將物件的狀態資訊隱藏在物件內部,不允許外部程式直接訪問物件內部資訊,而是通過該類所提供的方法來實現對內部資訊的操作和訪問。封裝是通過設定訪問控制符實現的,他們的訪問控制如下 訪問許可權 類 包 子類 全域性範圍 public protect default private 訪問控制符可用於修飾的成員...

Java 封裝的詳解

我們日常使用的電腦主機,把cpu 記憶體 主機板等等都封裝到機箱裡面去。假如沒有機箱的話的出現什麼問題,主機 主機板全部都散落在一處,然後開機沒有開機按鈕,那麼需要我們直接操作接跳線才能把電腦開啟。這樣子的話假如操作不慎的話,會讓機器損壞危險,那麼假如用機箱封裝起來的話,那麼就不需要這樣子做了。體現...