C#類的使用


C#面向對象的編程思想的精髓:模擬真實世界,把真實世界中的事物抽象成類,整個運用程序就是靠類和類之間的相互協作和通信完成系統功能

總結以上的說法:程序一切來源於類,並在不同的的需求情況下在類的基礎上進行擴展,以完成系統所需功能,並且不斷的優化系統性能

下面講一下我個人對“類”的理解和使用

一、關於類的基本小知識(內容不多,作為對類的系統理解)

  • 普通基類
  • 普通基類虛成員(virtral關鍵字修飾的成員,可以被子類重寫(override))
  • 抽象類(abstract 關鍵字修飾,有抽象成員、實例成員,類本身不能new。抽象成員一般指抽象方法,只能有方法的聲明不能具體實現,實現是由子類來完成的(override))
  • 接口(interface 關鍵字修飾,不能new,天生就是public 成員不能使用public 進行修飾,存在顯示和隱式兩種實現方式,實現接口的類必須實現接口成員)

補充一下類的訪問范圍:子類繼承基類,可以繼承基類的共有成員和受保護成員。私有成員只在類的內部可見,一般是類中的字段成員,類的外部可以通過類的屬性訪問器(get/set)來訪問類私有成員。類的外部只能訪問類的共有成員。

那么上面所列舉的四種情況是什么關系呢,又是在什么情況下使用呢,我下面做一個自己的簡單理解

總結一句話:繼承使我們的代碼得到一定程度的優化,當這些知識掌握很好之后你就會發現實現相同的功能,使用繼承代碼量會減少很多,更精簡干練

二、舉個小梨子

1、聲明一個抽象類

1 abstract class LongXiaM
2     {
3         public abstract void Tongzhi(int tem);
4     }

2、創建兩個普通基類實現上面抽象類

首先先聲明每個類各自會用的方法

1 class Alerm
2     {
3         public void AlermXiazi(string name,int tem)
4         {
5             Console.WriteLine("{0}tongzhi,wenduyijing {1} keyi dashui le ",name,tem);
6         }
7     }
1  class ShowInfo
2     {
3         public void TongzhiLongzi(string name,int tem)
4         { 
5             Console.WriteLine("{0}tongzhi shuiwen yijing {1} ,keyhidashui le ",name,tem);
6         }
7     }

創建子類

 1 class xiazi:LongXiaM
 2     {
 3         string name;
 4         public xiazi(string n)
 5         {
 6             this.name = n;
 7         }
 8         public override void Tongzhi(int tem)
 9         {
10             Alerm a = new Alerm();
11             a.AlermXiazi(name,tem);
12         }
13     }
14 
15     class longzi:LongXiaM
16     {
17         string name;
18         public longzi(string n)
19         {
20             this.name = n;
21         }
22         public override void Tongzhi(int tem)
23         {
24             ShowInfo t = new ShowInfo();
25             t.TongzhiLongzi(name,tem);
26         }
27     }

3、創建一個中間調用的方法

 1 class BoilWater
 2     {
 3         private int tem;
 4         public List<LongXiaM> lxm = new List<LongXiaM>();
 5 
 6         public void ShowBaseInfo()
 7         {
 8             for (int i = 0; i <= 100; i++)
 9             {
10                 tem = i;
11                 if (i > 99)
12                 {
13                     if (lxm.Count > 0)
14                     {
15                         foreach (var lx in lxm)
16                         {
17                             lx.Tongzhi(tem);
18                         }
19                     }
20                 }
21             }
22         }
23     }

4、在主程序中調用

1 static void Main(string[] args)
2         {
3             BoilWater b = new BoilWater();
4             b.lxm.Add(new xiazi("看不見"));
5             b.lxm.Add(new longzi("聽不見"));
6             b.ShowBaseInfo();
7         }

5、結果

1 看不見tongzhi,wenduyijing 99 keyi dashui le
2 聽不見tongzhi shuiwen yijing 99,keyhidashui le

 

三、上面這個例子可以看出,當我們學會如何靈活的使用類,巧妙的設計邏輯結構后,在代碼上可以節省很大的力氣,也可以看出我們的專業性

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM