C 封裝方法初步認識,例項講解

2021-09-25 20:10:49 字數 1634 閱讀 7054

物件導向的三個特徵是繼承、封裝和多型。學習完設計模式後,我們對繼承有了一定的了解,接下來就是機房重構的學習了。在寫**過程中,我們會有意無意的用到封裝,那麼什麼是封裝?封裝有什麼好處?

我理解的就是將一段**拿出來放在乙個方法裡並給這個方法起個名,需要這段**時只需要叫這個方法的名就行,不必關心它的處理過程。在這裡這個處理過程就被封裝到了方法裡。

至於這樣做的好處,到現在會一目了然了吧。在**量上:用到這個方法時不用複製**了,**需要它就在**放它的名字就行,如果有引數的話,要給引數賦值(傳參詳見下篇部落格)。在整體**結構上:封裝前**只是為了特定的某個資料的處理,**利用率低,封裝後方法可以在需要的地方處理需要的資料,**更靈活,利用率也高了。

大概了解封裝方法後,我們就來看看它長什麼樣。在vb版機房收費系統的時候,我們的**是這樣的:

表查詢:

private sub cmdcha_click()

'清空表內容,保留表頭

msflexgrid1.rows = 2

'表連線

strsql3 = "select * from line_info where cardno='" & trim(txtkahao.text) & "'" 'line??

set mrc3 = executesql(strsql3, msgstring)

strsql = "select * from student_info where cardno='" & trim(txtkahao.text) & "'and status='使用'"

set mrc = executesql(strsql, msgstring)

'空值if txtkahao.text = "" then

msgbox "沒有資料或卡號不存在", , "提示"

txtkahao.setfocus

exit sub

end if

' 。。。。。。後面的邏輯省去了

end sub

每個事件裡用到了幾個查詢語句就放幾個查詢語句,以後再次用到時還得寫,查詢語句也僅限於對本次事件某些資料的處理。

在機房重構時我們的**可能是這樣的(dal層):

//新增退卡記錄

public int addcancel(cancelinfo cancel)

;return sqlhelper.excutenonquery(sql, sp);

}——————————————————————————(不在同一類裡)————————————————————————

//刪除商品

public int deletegoods(goodsinfo goods)

;return sqlhelper.excutenonquery(sql, sp);

}

由於有了分層的架構,不同的層又有不同的類,類裡sql語句放在了一起,根據功能封裝成了不同的方法。在這裡就用到了封裝,每個查詢都是乙個方法,根據查詢結果的型別,相應的方法要寫成對應的型別,將執行結果通過return返回給方法。這樣,方法就被完整的封裝了起來,用的時候呼叫方法名(有引數的話需要給引數值)就可以了。

現在意識到了吧,在我們剛寫dal層**時就用到了封裝。是不是省了很多**呢。

後續部落格會詳細講解封裝方法及引數使用。

初步認識c

iostream i即代表in輸入,o即代表out輸出的意思 using namespace std 引用命名空間 輸出數字1 cout 1 輸入 cin 變數 輸出數字1加空格 cout 1 輸入int型a,b,輸出a,b之和 includeusing namespace std int main...

C 延遲執行方法函式例項講解

需求分析 我們在做winform開發的時候,有時候需要讓程式休眠幾秒鐘,但是如果我們直接使用 thread.sleep 函式的話,頁面ui就會停止響應。怎麼樣解決呢,你可以把頁面涉及到表現ui的 放到乙個單執行緒處理,也可以採用我面的方法,加乙個小函式就ok了。if messagebox.show ...

re正規表示式講解 初步認識

f open r c users lenovo desktop 模特.txt r 1.常規提取文件內容方法 contacts for i in f name,local,height,weight,telephone i.split if len telephone 11 and telephone...