封裝知識梳理

2021-08-27 07:59:43 字數 2134 閱讀 5588

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

你拿電腦去加記憶體,可以直接給電腦給維修的人,等他加好記憶體了之後。你拿到的還是那個機箱,裡面發生了怎樣子的變化你並不知道。封裝的第二個好處-將變化隔離

在機箱裡面提供乙個開機按鈕,而不需要你直接使用跳線開機的話,體現了封裝的—便於使用的特性。

只要機箱提供了乙個開機的功能,然後無論這個機箱拿到**去,都可以使用這個開機的功能.體現了封裝的—提供重複性的特性。

一、沒有封裝

模擬問題

1.描述employee類。定義姓名,工號,性別的成員變數,和工作的方法。成員使用public修飾。

2.建立employee物件,物件.成員的方式進行賦值。最後該物件呼叫工作方法。

3.總結:如果不使用封裝,很容易賦值錯誤,並且任何人都可以更改,造成資訊的 不安全。

4.問題解決:使用封裝

package oop01;

public

class employeedemo

}class employee

}

1:設定類的屬性為private(關鍵字),不能使用物件名.屬性名的方式直接訪問物件的屬性。

package oop01;

public

class employeedemo

}class employee

}

問題:

1:為什麼之前可以通過物件名.屬性名的方式訪問?

2:public 成員修飾符,公共的誰都可以訪問。

3:private 成員修飾符,私有的,只有自己可以訪問。

修改employee類 性別的修飾符修改為private

1:編譯不通過

2:private修飾的成員在自己所在的類中可以使用,在類外邊不可以使用。

3:employee類的gender的修飾符修改為private後,無法再類外呼叫,那麼如何給gender設定值?

1:對外提供公開的用於設定物件屬性的public方法

1:設定set

2:獲取get

2:在set方法中加入邏輯判斷,過濾掉非法資料。

3:將所有的成員變數封裝加上private,提供get、set方法

package oop01;

public

class employeedemo

}class employee

public

void

setname(string n)

public string getid()

public

void

setid(string i)

public string getgender()

public

void

setgender(string gen) else

}public

void

work()

}

1:隱藏了類的具體實現

2:操作簡單

3:提高物件資料的安全性

例子:描述乙個計算器類

/**

demo9描述乙個計算器類。

*/// 0. 使用詞霸確定類名

class calculator

// 2.2 定義計算的功能

public

void

calculate()

case

'%':

default : system.out.println("你在搗亂,我不理你,氣死你......");}}

}class demo9

}

封裝和繼承梳理

使用封裝有三大好處 1 良好的封裝能夠減少耦合。2 類內部的結構可以自由修改。3 可以對成員進行更精確的控制。4 隱藏資訊,實現細節。封裝確實可以使我們容易地修改類的內部實現,而無需修改使用了該類的客戶 繼承是使用已存在的類的定義作為基礎建立新類的技術,新類的定義可以增加新的資料或新的功能,也可以用...

知識梳理計畫

知識的學習一般來說有兩個過程,第乙個是摳細節,理解知識,另乙個是將知識點進行總結歸納融入到自己的知識體系中。如果工作學習過程中需要用到該知識點的時候可以很快的提取出來。在這幾年的學習以及研究生活中,我也陸陸續續的鑽研過一些演算法,但是很多東西,都是當時懂了,但是過了一段時間,可能就忘記了,等到需要使...

Hive 知識梳理

1 order by,sort by,distribute by,cluster by 背景表結構 在講解中我們需要貫串乙個 例子,所以需要設計乙個情景,對應 還要有乙個表結構和填充資料。如下 有 3 個字段,分別為 personid 標識某乙個人,company 標識一家公司名稱,money 標識...