成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C# 封裝,你會嗎?

開發 后端
封裝 被定義為"把一個或多個項目封閉在一個物理的或者邏輯的包中"。在面向對象程序設計方法論中,封裝是為了防止對實現細節的訪問。

 [[392979]]

本文轉載自微信公眾號「后端Q」,作者conan。轉載本文請聯系后端Q公眾號。  

封裝 被定義為"把一個或多個項目封閉在一個物理的或者邏輯的包中"。在面向對象程序設計方法論中,封裝是為了防止對實現細節的訪問。

抽象和封裝是面向對象程序設計的相關特性。抽象允許相關信息可視化,封裝則使開發者實現所需級別的抽象。

C# 封裝根據具體的需要,設置使用者的訪問權限,并通過 訪問修飾符 來實現。

一個 訪問修飾符 定義了一個類成員的范圍和可見性。C# 支持的訪問修飾符如下所示:

public:所有對象都可以訪問;

private:對象本身在對象內部可以訪問;

protected:只有該類對象及其子類對象可以訪問

internal:同一個程序集的對象可以訪問;

protected internal:訪問限于當前程序集或派生自包含類的類型。

Public 訪問修飾符

Public 訪問修飾符允許一個類將其成員變量和成員函數暴露給其他的函數和對象。任何公有成員可以被外部的類訪問。

下面的實例說明了這點:

實例

  1. using System; 
  2.  
  3. namespace RectangleApplication 
  4.     class Rectangle 
  5.     { 
  6.         //成員變量 
  7.         public double length; 
  8.         public double width; 
  9.  
  10.         public double GetArea() 
  11.         { 
  12.             return length * width; 
  13.         } 
  14.         public void Display() 
  15.         { 
  16.             Console.WriteLine("長度: {0}", length); 
  17.             Console.WriteLine("寬度: {0}", width); 
  18.             Console.WriteLine("面積: {0}", GetArea()); 
  19.         } 
  20.     }// Rectangle 結束 
  21.  
  22.     class ExecuteRectangle 
  23.     { 
  24.         static void Main(string[] args) 
  25.         { 
  26.             Rectangle r = new Rectangle(); 
  27.             r.length = 4.5; 
  28.             r.width = 3.5; 
  29.             r.Display(); 
  30.             Console.ReadLine(); 
  31.         } 
  32.     } 

當上面的代碼被編譯和執行時,它會產生下列結果:

  1. 長度:4.5 
  2. 寬度:3.5 
  3. 面積:15.75 

在上面的實例中,成員變量 length 和 width 被聲明為 public,所以它們可以被函數 Main() 使用 Rectangle 類的實例 r 訪問。

成員函數 Display() 和 GetArea() 可以直接訪問這些變量。

成員函數 Display() 也被聲明為 public,所以它也能被 Main() 使用 Rectangle 類的實例 r 訪問。

Private 訪問修飾符

Private 訪問修飾符允許一個類將其成員變量和成員函數對其他的函數和對象進行隱藏。只有同一個類中的函數可以訪問它的私有成員。即使是類的實例也不能訪問它的私有成員。

下面的實例說明了這點:

實例

  1. using System; 
  2.  
  3. namespace RectangleApplication 
  4.     class Rectangle 
  5.     { 
  6.         //成員變量 
  7.         private double length; 
  8.         private double width; 
  9.  
  10.         public void Acceptdetails() 
  11.         { 
  12.             Console.WriteLine("請輸入長度:"); 
  13.             length = Convert.ToDouble(Console.ReadLine()); 
  14.             Console.WriteLine("請輸入寬度:"); 
  15.             width = Convert.ToDouble(Console.ReadLine()); 
  16.         } 
  17.         public double GetArea() 
  18.         { 
  19.             return length * width; 
  20.         } 
  21.         public void Display() 
  22.         { 
  23.             Console.WriteLine("長度: {0}", length); 
  24.             Console.WriteLine("寬度: {0}", width); 
  25.             Console.WriteLine("面積: {0}", GetArea()); 
  26.         } 
  27.     }//end class Rectangle     
  28.     class ExecuteRectangle 
  29.     { 
  30.         static void Main(string[] args) 
  31.         { 
  32.             Rectangle r = new Rectangle(); 
  33.             r.Acceptdetails(); 
  34.             r.Display(); 
  35.             Console.ReadLine(); 
  36.         } 
  37.     } 

當上面的代碼被編譯和執行時,它會產生下列結果:

請輸入長度:

4.4

請輸入寬度:

3.3

長度:4.4

寬度:3.3

面積:14.52

在上面的實例中,成員變量 length 和 width 被聲明為 private,所以它們不能被函數 Main() 訪問。

成員函數 AcceptDetails() 和 Display() 可以訪問這些變量。

由于成員函數 AcceptDetails() 和 Display() 被聲明為 public,所以它們可以被 Main() 使用 Rectangle 類的實例 r 訪問。

Protected 訪問修飾符

Protected 訪問修飾符允許子類訪問它的基類的成員變量和成員函數。這樣有助于實現繼承。我們將在繼承的章節詳細討論這個。更詳細地討論這個。

Internal 訪問修飾符

Internal 訪問說明符允許一個類將其成員變量和成員函數暴露給當前程序中的其他函數和對象。換句話說,帶有 internal 訪問修飾符的任何成員可以被定義在該成員所定義的應用程序內的任何類或方法訪問。

下面的實例說明了這點:

實例

  1. using System; 
  2.  
  3. namespace RectangleApplication 
  4.     class Rectangle 
  5.     { 
  6.         //成員變量 
  7.         internal double length; 
  8.         internal double width; 
  9.         
  10.         double GetArea() 
  11.         { 
  12.             return length * width; 
  13.         } 
  14.        public void Display() 
  15.         { 
  16.             Console.WriteLine("長度: {0}", length); 
  17.             Console.WriteLine("寬度: {0}", width); 
  18.             Console.WriteLine("面積: {0}", GetArea()); 
  19.         } 
  20.     }//end class Rectangle     
  21.     class ExecuteRectangle 
  22.     { 
  23.         static void Main(string[] args) 
  24.         { 
  25.             Rectangle r = new Rectangle(); 
  26.             r.length = 4.5; 
  27.             r.width = 3.5; 
  28.             r.Display(); 
  29.             Console.ReadLine(); 
  30.         } 
  31.     } 

當上面的代碼被編譯和執行時,它會產生下列結果:

長度:4.5

寬度:3.5

面積:15.75

在上面的實例中,請注意成員函數 GetArea() 聲明的時候不帶有任何訪問修飾符。如果沒有指定訪問修飾符,則使用類成員的默認訪問修飾符,即為 private。

Protected Internal 訪問修飾符

Protected Internal 訪問修飾符允許在本類,派生類或者包含該類的程序集中訪問。這也被用于實現繼承。

責任編輯:武曉燕 來源: 后端Q
相關推薦

2021-07-27 06:49:11

C#存儲檢索

2021-03-02 07:33:13

開發C#字符

2023-09-26 07:38:53

c#Lambda表達式

2009-08-24 14:30:49

C# WMI封裝

2021-06-02 00:15:41

C# PC藍牙

2021-08-19 15:36:09

數據備份存儲備份策略

2009-06-05 10:24:37

C#排序排序

2024-12-12 08:50:30

開源多媒體框架

2024-08-22 08:17:55

C#工具循環

2015-04-20 11:19:15

2024-09-12 08:20:39

2024-04-29 06:39:45

WebSocketSocketC#

2021-04-16 15:02:11

CAP理論分布式

2024-02-22 08:31:26

數據恢復工具MySQL回滾SQL

2012-06-20 10:47:25

Team Leader

2019-05-07 15:49:27

AI人工智能藝術

2010-07-13 10:40:30

唐駿

2025-05-07 08:30:00

2024-11-01 10:48:01

C#WPF程序

2024-05-14 08:19:54

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品在线免费播放 | 欧美日韩黄色一级片 | 亚洲欧美精品在线观看 | 亚洲一区二区三区四区五区午夜 | av黄色在线| 懂色中文一区二区三区在线视频 | 国产精品久久久久久影院8一贰佰 | 丁香六月伊人 | 在线毛片网 | 有码一区 | 精品一区二区电影 | 91香蕉| 国产精品成人一区二区三区 | 一区二区国产精品 | 欧美日韩国产免费 | 亚洲精品久 | 国产一区二区三区在线看 | 免费国产一区 | 国产不卡视频在线 | 日韩手机在线看片 | 成人欧美一区二区三区黑人孕妇 | 中文字幕亚洲一区二区va在线 | 日韩欧美在线观看 | 中文字幕国产高清 | 日韩成人在线视频 | 欧美性猛片aaaaaaa做受 | 欧美一级片免费看 | 伊人在线 | 国产精品欧美一区二区三区不卡 | 干出白浆视频 | 91精品国产手机 | 成年人在线播放 | 欧美一区二区三区精品免费 | 日韩不卡视频在线 | 91福利在线观看视频 | 欧美在线一区二区视频 | 一区二区福利视频 | 亚洲精品视频免费观看 | 免费的av网站 | 亚洲美女在线视频 | 免费a网站 |