關(guān)于C# 類(lèi)的封裝詳情
1、前言
法存取數(shù)據(jù)。除此之外,還可以控制數(shù)據(jù)的存取方式。在面向?qū)ο缶幊讨?,大多?shù)都是以類(lèi)作為數(shù)據(jù)封裝的基本單位。類(lèi)將數(shù)據(jù)和操作數(shù)據(jù)的方法結(jié)[成一個(gè)單位。設(shè)計(jì)類(lèi)時(shí),不希望直接存取類(lèi)中的數(shù)據(jù),而是希望通過(guò)方法來(lái)存取數(shù)據(jù)。這樣就可以到封裝數(shù)據(jù)的目的,方便以后的維護(hù)升級(jí),也可以在操作數(shù)據(jù)時(shí)多一層判斷。
此外,封裝還可以解決數(shù)據(jù)存取的權(quán)限問(wèn)題,可以使用封裝將數(shù)據(jù)隱藏起來(lái),形成一個(gè)封閉的問(wèn),然后可以設(shè)置哪些數(shù)據(jù)只能在這個(gè)空間中使用,哪些數(shù)據(jù)可以在空間外部使用。一個(gè)類(lèi)中包含敏感數(shù)據(jù),有些人可以訪問(wèn),有些人不能訪問(wèn),如果不對(duì)這些數(shù)據(jù)的訪問(wèn)加以限制,后果將會(huì)非常嚴(yán)所以在編寫(xiě)程序時(shí),要對(duì)類(lèi)的成員使用不同的訪問(wèn)修飾符,從而定義它們的訪問(wèn)級(jí)別。
封裝的目的是增強(qiáng)安全性和簡(jiǎn)化編程,使用者不必了解具體的實(shí)現(xiàn)細(xì)節(jié),而只是要通過(guò)外部接口這一特定的訪問(wèn)權(quán)限來(lái)使用類(lèi)的成員。如充電器,它是將220V的電源經(jīng)過(guò)降壓整流濾波后,用導(dǎo)線(xiàn)與電池相連,然后進(jìn)行充電。而降壓整流濾波這一過(guò)程就相當(dāng)于類(lèi)的封裝。
2、實(shí)例
【例1】 創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序,其中自定義一個(gè)MyClass
類(lèi),該類(lèi)用來(lái)封裝加數(shù)和被加數(shù)屬性。然后自定義一個(gè)Add
方法,該方法用來(lái)返回該類(lèi)中兩個(gè)int
屬性的和。Program
主程序類(lèi)中,實(shí)例化自定義類(lèi)的對(duì)象,并分別為MyClass
類(lèi)中的兩個(gè)屬性賦值。最后調(diào)用 MyClass
類(lèi)中的自定義方法 Add返回兩個(gè)屬性的和。
代碼如下:
class MyClass //自定義類(lèi),封裝加數(shù)和被加數(shù)屬性 { prvate intx=0: //定義int型變量,作為加數(shù) private int y = 0; //定義int型變量,作為被加數(shù) ///<summary> ///加數(shù) ///<Summry> publie int x { get {return x; } set { x =value; } } public int y //被加數(shù) get { return y; } set { y * value; } } public int Add() //求和 { retum x+Y } class Program { static void Main(string(] args) { MyClass myclass u new MyClass(); //實(shí)例化 MyClass 的對(duì)象 myclass.x=3; //為 MyClass 類(lèi)中的屬性默值 myclass.Y =5; //為 MyClass 類(lèi)中的屬性賦值 Console.WriteLine(myclass.Add()): //調(diào)用 MyClass 類(lèi)中的 Add 方法求和 Console.ReadLine(); } }
運(yùn)行結(jié)果為 8
到此這篇關(guān)于關(guān)于C# 類(lèi)的封裝詳情的文章就介紹到這了,更多相關(guān)C# 類(lèi)的封裝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于C#中使用Oracle存儲(chǔ)過(guò)程返回結(jié)果集的問(wèn)題
Oracle中可以使用游標(biāo)(Cursor)對(duì)數(shù)據(jù)集進(jìn)行操作,但在存儲(chǔ)過(guò)程輸出參數(shù)中直接使用Cursor錯(cuò)誤,下面小編給大家?guī)?lái)了C#中使用Oracle存儲(chǔ)過(guò)程返回結(jié)果集的問(wèn)題,感興趣的朋友一起看看吧2021-10-10C# 實(shí)現(xiàn)視頻監(jiān)控系統(tǒng)(附源碼)
這篇文章主要介紹了C# 如何實(shí)現(xiàn)視頻監(jiān)控系統(tǒng),幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2021-02-02winform簡(jiǎn)單緩存類(lèi)實(shí)例
這篇文章主要介紹了winform簡(jiǎn)單緩存類(lèi),涉及C#緩存使用技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-09-09C# IP地址與整數(shù)之間轉(zhuǎn)換的具體方法
這篇文章介紹了C# IP地址與整數(shù)之間轉(zhuǎn)換的具體方法,有需要的朋友可以參考一下2013-10-10c#使用listbox的詳細(xì)方法和常見(jiàn)問(wèn)題解決
這篇文章介紹了c#使用listbox的詳細(xì)方法和常見(jiàn)問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01C#利用接口實(shí)現(xiàn)多語(yǔ)種選擇功能
這篇文章主要為大家詳細(xì)介紹了如何C#利用接口實(shí)現(xiàn)多語(yǔ)種選擇功能,即多語(yǔ)言切換的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2024-02-02C#使用Objects?Comparer進(jìn)行對(duì)象比較
本文主要介紹了C#使用Objects?Comparer進(jìn)行對(duì)象比較,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07