C#封裝、多態、抽象、接口、匿名方法等學習


1:封裝

   將對象進行封裝,並不等於將整個對象完全包裹起來,而是根據實際需要,設置一定的訪問權限,用戶根據不同的權限調用對象提供的功能,在C#語言中,可以使用修飾符public、internal、protected、private分別修飾類的字段、屬性和方法。

 

2:繼承,主要是注意繼承的格式

 

[csharp]  view plaincopy
  1. public class ParentClass  //父類  
  2. {  
  3.    public ParentClass();  
  4. }  
  5.   
  6. public class ChildClass : ParentClass  :子類  
  7. {  
  8.    public ChildClass();  
  9. }  

 

 

3:多態

    多態是面向對象編程思想的核心之一,多態的意思是:當從父類派生出了一些子類后,每個子類都由不同的代碼實現,因此,同樣的調用可以產生不同的效果,主要由子類來決定,在程序運行時,面向對象的語言會自動判斷對象的派生類型,並調用相應的方法。

   在C#中多態分為兩種類型,即編譯時多態和運行時多態,編譯時多態是通過重載來實現的,運行時多態是系統運行時根據實際情況來決定何種操作。

實例代碼:

 

[html]  view plaincopy
  1. public class MyIntertest   
  2. {  
  3.    public virtual void interest()   
  4.    {  
  5.       Console.WriteLine("我的愛好");  
  6.       Console.ReadLine();  
  7.    }  
  8. }  
  9.   
  10. public class Writer : MyIntertest  
  11. {  
  12.     public override void Interest()   
  13.     {  
  14.        Console.WriterLine("寫作");  
  15.     }  
  16. }  
  17.   
  18. public class Program : MyInterest  
  19. {  
  20.     public override void interest()   
  21.     {  
  22.         Console.WriteLine("編程");  
  23.     }  
  24. }  
  25.   
  26. public class Sing : MyInterest   
  27. {  
  28.     public override void interest()   
  29.     {  
  30.         Console.WriteLine("唱歌");  
  31.     }  
  32. }  
  33.   
  34.   
  35. public class Test   
  36. {  
  37.    public static int main(String[] args)   
  38.    {  
  39.        MyInterest[] interests = new MyInterest[4];  
  40.        interests[0] = new Write();  
  41.        interests[1] = new Program();  
  42.        interests[2] = new Sing();  
  43.        interests[3] = new MyInterest()  
  44.          
  45.        foreach ( MyInterest interest in interests)  
  46.        {  
  47.            interest.interest();  
  48.        }  
  49.          
  50.        return 0;  
  51.    }  
  52. }  

 

4:

接口:    界面,是兩個有界事物的交界處,通過界面可以與對方交互,交互的方式由約定產生,這種約定就是由具體交互動作的規則,只要遵循規則 即可與擁有規則的事物交互。    在C#中,接口是聲明類具有的方法和成員的、自身不能被實例化的、只能被繼承的特殊的類,其只管描述事物的特性而實現特性的任務卻由其他類負責。    接口中不能包含字段    接口定義了類要實現的一系列方法,但是它本身不能實現這些方法,只是用邏輯結構方式來描述。        在接口的成員中,只能是方法、屬性、事件或者索引器,它的成員不能包含常數、字段、運算符、實例構造函數、析構構造函數或類型,也不能包含任意種類的    靜態成員。    

[csharp]  view plaincopy
  1. interface MyInterface  
  2.   {  
  3.      string STR    //屬性STR  
  4.      {  
  5.        get;       //屬性可讀  
  6.        set;       //屬性可寫  
  7.      }      
  8.      void outMethod();   //成員方法outMethod  
  9.   }  
  10.     
  11.   class InheritInterface : MyInterface  
  12.   {  
  13.      string str = "21天學習C#";    //定義並初始化字符串  
  14.      public string STR  
  15.      {  
  16.         get  
  17.         {  
  18.            return str;  
  19.         }  
  20.         set  
  21.         {  
  22.            str = value;  
  23.         }  
  24.      }    
  25.      public void outMethod()  
  26.      {  
  27.         Console.WriteLine(this.STR);  
  28.      }   
  29.   }  



 

5: 域和屬性     域也叫成員變量,它可以用來保存類的各種信息,域可以分為靜態域和實例域兩種,其中,靜態域屬於類,實例域屬於對象。     屬性是一種用來訪問對象的特殊成員。          域的聲明:和普通變量相同,可以用new, public, protected, static和readonly等         

[csharp]  view plaincopy
  1. public class Date  
  2.    {  
  3.       private string name = "hoan";  
  4.       public string nameAttr   
  5.       {  
  6.         get  //使用get訪問器讀值  
  7.         {  
  8.            return name;  
  9.         }  
  10.         set  //使用set訪問器寫值  
  11.         {  
  12.              
  13.         }  
  14.       }  
  15.    }  


6:匿名方法:
   匿名方法的作用是將代碼塊當作參數來使用,使代碼對於委托的實例很直接,很便利,可以減少實例化委托對系統資源的開銷。匿名方法還共享了
   本地語句包含的函數成員訪問權限。
   
   匿名方法的使用:
    

[csharp]  view plaincopy
  1. namespace codemo  
  2.     {  
  3.        delegate void Writer(string s);  //委托所調用的命名方法  
  4.        class Program   
  5.        {  
  6.            static void NamedMethod(string k)   //委托所調用的命名方法  
  7.            {  
  8.               System.Console.WriteLine(k);   
  9.            }  
  10.            static void Main(string[] args)   
  11.            {  
  12.               Writer w = delegate(string j)  //委托類調用匿名方法  
  13.               {  
  14.                  System.Console.WriteLine(j);  
  15.               }  
  16.               w("調用了匿名方法");  
  17.               Console.WriteLine();  
  18.               w = new Writer(NamedMethod);  //創建對象  
  19.               w("調用了命名方法");          //調用命名方法  
  20.               Console.ReadLine();       
  21.            }   
  22.        }   
  23.     }  


免責聲明!

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



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