計算機, 程序設計
封裝 - 這是什麼? 封裝編程
封裝-這是的三個主要特徵之一 的面向對象的編程(OOP)。 另外兩個 - 多態和繼承。 它們共同構成了巴解組織的框架,規定了各種不同語言編寫程序的功能,使用這三項原則。 面向對象的語言,反過來,有義務嚴格遵守。
OOP基礎
面向對象在其創作的三大支柱編程:
- 多態性,回答的一個特定的編程語言是如何與有相互的關係,以類似的方式對象涉及的問題。
- 傳承,給一個答案,是如何利用可重用代碼的刺激。
- 封裝,這是答案隱藏實現的問題發生,因此,數據的完整性。
術語
封裝(編程) - 是使用訪問修飾符以便從最終用戶隱藏的代碼段。 在其下方,反過來,意味著開發人員或遺址。
“封裝”的概念的本質
該定義指定由封裝意味著隱藏所有或部分程序代碼。 “封裝”概念的本質是操縱訪問修飾符。 這意味著開發人員可以決定哪些屬性,方法和類將開放給客戶一流的,什麼 - 被隱藏。
訪問修飾符
- 公眾(“公眾” - 公共,開放接入) - 份額都在當前類和對象,並給外界;
- 私人(“prayvat” - 私有的,私人的,隱藏的訪問) - 封閉接入,其實質是完全與前一個的相反。 它提供僅從當前級接入;
- 保護(“protekted” - 保護的,半隱藏接入) - 使用當前類及其衍生物;
- 缺省 - 未指定的訪問修飾符表示該字段/方法可以看出對於所有的當前類在包中。
在C#語言(“矽夏普”)中,除了上述(除了最後),仍有修飾符:
- 內部(“內部” - 內部訪問) - 中的輔助電流組件中,向所有其他情況下室內接入;
- 內部保護(“內部protekted” - 內部保護接入) - 兩個修飾的聯盟在其中他們兩個清單屬性。
封裝的作用
封裝機構消除了對嵌入其中的數據的代碼和濫用外部影響。 這是由代碼和數據組合成一個完成的。
對象和封裝
組合的軟件模塊和嵌入在代碼數據的實現方式中,編程被稱作一個對象。 其與封裝的連接的本質是,這樣的方法允許維持和保證了機構的操作的完整性。
封裝的優點
封裝 - 的方式來簡化編碼過程。 代碼無數條線是“幕後”,並在主類的工作將對象實例。
數據保護的想法
封裝 - 它也是實現數據保護的想法的機制。 程序邏輯的面向對象的程序設計是建立在大多數數據將成為基礎上隱藏的訪問修飾符民營(私營,民營)或保護(保護)。 外面的世界,客戶有意或無意不會損壞軟件模塊的實現。 因為實際上它使得它非常容易甚至沒有目的,封裝 - 這是一個非常好的原則。
封裝單元
類,如封裝的基本單元,並描述所述數據包括代碼,其能夠對這些數據進行操作。 他還為對象的建設奠定了基礎。 後者又是作為一個實例。
- 部件 - 這是代碼和包括在類的數據;
- 字段或實例變量 - 用於定義類的所謂的數據;
- 成員函數 - 它們所包含的代碼本身。 成員函數 - 一個共同的名字。 一個特殊的情況 - 方法。
封裝具體的例子
封裝(編程)例如:
*注意:
描述 - 該方法/屬性/變量的說明,即評論究竟在程序發生。 它是由開/關標記的手段證實
使用系統;
命名空間OOPLibrary.Auto
{
///
///這個類是用來描述汽車的動作
///
公共類汽車
{
///
///為了創建變量在寫,多少年的車,因為在房地產開發商外界干擾認為是多餘的
///改性劑標記為私有的,即閉合,私營訪問(請參閱。上面的描述)。
///
私人詮釋_age;
///
///布林(只有兩個可能的值-是或否),它描述了車輛是否在此刻移動
///它也應該是開放給最終用戶,不管他是誰。 因此這個變量分配一個專用訪問修飾符“prayvat”
///
私人布爾_isMoving;
///
///此字符串變量應包含有關汽車的顏色信息。 它可以通過外部影響而改變
///因為對於顏色修正選擇開放獲取“公共”。
///
公共串色;
///
///在這種特殊情況下,我們認為汽車的名稱,也可以改變
///分配的公共的改性劑(對於所有開放存取,無論類或組件)。
///
公共字符串名稱;
///
///打開類構造函數和變量表示的所有屬性,並設置早一點,得到他們的價值觀
///
市民盛汽車()
{
_age = 5;
_isMoving = FALSE;
顏色=“紫”;
NAME =“斯柯達明銳”;
}
///
///該方法實現了汽車時代的返回值。 為什麼是這個必要嗎?
///私人的訪問修飾符不使其能夠為客戶端的變化。
///
///返回車的時代。
公共字符串GetAge()
{
返回“目前,所選擇的機器”+ _age +“的年代。”
}
///
///如果汽車不動,這種方法實現了運動的開始。 檢查變量oboznalsya,車輛(行駛或沒有),並且根據結果的條件時,將顯示適當的行動/消息。
///
公共無效啟動()
{
如果(_isMoving)
{
Console.WriteLine(“運動已經開始”);
}
其他
{
_isMoving = TRUE;
Console.WriteLine(“準備,設置..去了!”);
}
}
///
///如果議案被啟動,這種方法阻止了他。 相同的程序邏輯如前面的情況下考慮。
///
公共無效停止()
{
如果(_isMoving)
{
_isMoving = FALSE;
Console.WriteLine(“停止機器”);
}
其他
{
Console.WriteLine(“錯誤小車等站定,別動”);
}
}
///
///實現左轉,如果有車輛
///
公共無效MoveLeft()
{
如果(_isMoving)
{
Console.WriteLine(“左轉完成”);
}
其他
{
Console.WriteLine(“錯誤車輛處於靜止狀態的旋轉功能目前無法使用。”);
}
}
///
///類似的方法與所述右轉
///
公共無效MoveRight的()
{
如果(_isMoving)
{
Console.WriteLine(“右轉已成功實施了”);
}
其他
{
Console.WriteLine(“錯誤的車還沒有從現貨右轉它此刻的動作,這是不可能進行移動。”);
}
}
}
}
Similar articles
Trending Now