成人免费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
相關推薦

2023-09-26 07:38:53

c#Lambda表達式

2021-07-27 06:49:11

C#存儲檢索

2021-03-02 07:33:13

開發C#字符

2009-08-24 14:30:49

C# WMI封裝

2021-06-02 00:15:41

C# PC藍牙

2009-06-05 10:24:37

C#排序排序

2021-08-19 15:36:09

數據備份存儲備份策略

2015-04-20 11:19:15

2024-09-12 08:20:39

2024-04-29 06:39:45

WebSocketSocketC#

2024-12-12 08:50:30

開源多媒體框架

2024-08-22 08:17:55

C#工具循環

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人工智能藝術

2024-11-01 10:48:01

C#WPF程序

2025-05-07 08:30:00

2010-07-13 10:40:30

唐駿

2009-08-20 18:13:03

F#和C#
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕人成人 | 91精产国品一二三区 | 国产精品一区二区在线 | 国外成人免费视频 | 三级av在线 | 欧美一区二区在线 | 日韩欧美网 | 国产十日韩十欧美 | 成人免费视屏 | 欧美阿v | eeuss国产一区二区三区四区 | 国产精品国产馆在线真实露脸 | 在线观看视频一区二区三区 | 欧美一区二区三区在线观看 | 成人性视频免费网站 | av免费网站在线观看 | av黄色免费在线观看 | 亚洲欧美在线免费观看 | 国产精品黄色 | 日本成人免费网站 | 亚洲国产成人精品女人久久久野战 | 久久亚洲春色中文字幕久久久 | 中文字幕国产视频 | 青青草在线视频免费观看 | 亚洲欧美日韩在线 | 亚洲区一区二 | 久久99精品久久久久婷婷 | 综合网伊人 | 四虎影音 | 天堂av在线影院 | 人人精品| 中文字幕精品一区二区三区在线 | 国产精品 欧美精品 | www.成人.com | 我想看一级黄色毛片 | 人人鲁人人莫人人爱精品 | 欧美高清视频一区 | www.一区二区| 国产一区二区三区免费 | 91在线第一页 | 国产亚洲一区精品 |