国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

面向對象基礎進階02

2019-11-14 13:53:20
字體:
來源:轉載
供稿:網友

一:面向對象的三大特征

封裝,繼承,多態

封裝

1:封裝的概念及作用

     *通過使用PRivate和public修飾符來修飾類的成員(字段,屬性,方法等)這樣有效的使私有數據和方法不被外界訪問,這種使用特性就是封裝;

     *一個屬性,一個方法也是封裝,類是對屬性和方法的封裝;

     *封裝是面向對象中的一個重要特征,面向對象的三個重要特征為:封裝,繼承,多態;

     *作用<模塊化和數據隱藏>

2:類是模版,確定的對象將會擁有的特征(屬性)和行為(方法);任何對象將會屬于一個類中;

3:對象是以類為模版而創建的,是類的實例化,具體化;

4:面向對象的好處

      *封裝使得開發人員更加關注自己的需求;

      *一個類定義之后可以多次使用,避免重復賦值;

5:類試圖 對于類的總體結構的展示;類(右鍵-----查看類圖)

6:類的祖先(object)

      *Object類是所有類的父類(祖先類),因此任何一個類都可以轉換成object類型;

      *可以將任何類型的值賦予object類型的變量;

裝箱:將值類型的變量轉換為<object>對象的過程叫做裝箱;

拆箱:將<object>對象類型的變量轉換為值類型的過程叫做拆箱;

wps1FA0.tmp

繼承

     *一個類繼承另一個類,第一個類叫做子類,另一個叫做父類,子類繼承父類,即子類就擁有了父類的屬性和方法,可以重寫<override>父類的方法和屬性,同時子類也可以編輯自己的屬性和方法。<Object類>

     *子類不能繼承父類的私有成員

     *子類只能有一個父類,但是作為父類的類可以是多個子類的父類。

1:關鍵字Virtual

   Virtual關鍵字用于指定屬性或方法在派生類中重寫. 默認情況下,派生類從其基類繼承屬性和方法,如果繼承的屬性或方法需要在派生類中有不同的行為,則可以重寫它,即可以在派生類中定義該屬性或方法的新實現,這時在基類中該屬性或方法必須用virtual關鍵字修飾.virtual關鍵字用于指定屬性或方法時可以在派生類中重寫.具有virtual關鍵字的方法或屬性被稱作虛擬成員.
   在基類(父類)中用virtual修飾符聲明一個虛方法,然后在在派生類(子類)中用override修飾符覆蓋基類虛方法。表明是對基類的虛方法重載。這種優勢在于它可以在程序運行時再決定調用哪一個方法,這就是所謂的“運行時多態”,或者稱動態綁定。

class A                                                   {                                                             public virtual void F(){}                             }                                                                                                                   class B:A                                                 {                                                             public override void F(){}                            }

多態  <編譯時多態,運行時多態>

   *和重載的定義一樣,可以這樣說重載也多態的一種。

   *定義類的繼承發生在多個類之間,而類的多態發生在同一個類上,在一個類中可以定義多個同名方法,只要確定了它們的參數個數和類型不同。

理解下面這段話就了解了多態.

wps91C9.tmp

覆蓋: 就是子類有和父類重名的方法和屬性,此時父類的方法就被子類的覆蓋掉了。相當于修改父類的方法。

二:對象數據類型與對象銷毀

1:基本數據類型{int,double,bool.....},值類型;

  引用數據類型{數組,對象,string},對象類型;

2: *引用類型變量傳遞時,將自己的內存地址賦給新變量{指針};

   *值類型變量傳遞時,將自己復制一份;

這里值類型保存在棧里面,而引用類型,一部分保存在堆里面,一部分保存在棧里面.

3:ref關鍵字

   可以將值類型變量按照引用方式傳遞;{實際開發中不建議經常使用ref關鍵字}

   引用傳參,必須進行初始化,

4:out關鍵字

   可以讓方法有多個返回值,側重輸出,引用傳參,可以不進行初始化,但是必須在方法里面進行賦值。<return多個返回值的方法里面>

5: Params:當需要多個參數時,才會用到。數組類型參數。

wps938F.tmp

6:對象的銷毀

  垃圾回收機制(GC)

   *.net虛擬機特有的機制,自動運行,并檢查對象的狀態;

   *發現對象不被引用時,會將其釋放所占空間;

   *在實際的應用中我們可以自己調用GC來幫助我們清理一些我們不需要的變量和字段。

三:非泛型集合

1:ArrayList是一個長度可變的“數組”,通常成為集合,類似于數組的結構,其中最大的特點是:可以自由的擴展元素個數;

2:ArrayList集合的特點

   *元素都被轉換成object類型

   *使用Add方法可以隨意添加元素,無個數限制;

   *使用Remove方法可以刪除指定元素,元素刪除后索引自動調整;

   *通過索引訪問元素,元素取出的時候需要強制轉換成特定數據類型;

3:Arraylist的具體插入,刪除代碼;

wps98CB.tmp

4:ICollection<T>泛型的知識

   * IList<T>繼承自ICollection<T>,ICollection<T>繼承自IEnumerable<T>,IEnumerable<T>繼承自IEnumerable

所以List<T>實現了IList<T>接口,也就是實現了IEnumerable接口
   * IEnumerable<T>是IEnumerable接口的泛型版本。使用泛型,不會強行對值類型進行裝箱和拆箱,或引用類型進行向下強制類型轉換,使程序性能提高。泛型定義的變量有類型限制,所以泛型提高了程序的類型安全。  泛型還提高了代碼的重用性。

四:泛型集合list<T>與Dictionary的使用

1:List<T>使用前的準備工作

  *引入命名空間:System.Collections.Generic

  *確定存儲類型:List<Student> student=new List<student>();

常用方法

  *添加元素:Add(<T>);

  *刪除元素:RemoveAt(索引);

  *元素個數:count

遍歷集合

   Foreach(Student stu in students)   {   Console.writeline(stu.studentName);   }

2:泛型集合的最大特征:嚴格約束集合內的元素類型;

3:集合初始化器

  創建集合對象時直接初始化,非常類似與數組;

4:Dictionary<k,v>通常稱為字典

   *<k,v>約束集合中的元素類型

   *編譯時檢查類型約束;

   *無需裝箱拆箱操作

   *與哈希表操作類視

wps70F1.tmp

wps7102.tmp

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霍林郭勒市| 伊宁市| 巨野县| 高雄市| 勐海县| 黄石市| 安多县| 柘荣县| 大理市| 雅安市| 连江县| 哈密市| 铜川市| 和平县| 亳州市| 柏乡县| 蛟河市| 阳谷县| 江都市| 平舆县| 扎鲁特旗| 嘉祥县| 景德镇市| 德惠市| 青岛市| 福海县| 河北区| 伊春市| 郯城县| 普安县| 黑水县| 彭泽县| 东乡| 南平市| 康保县| 会昌县| 合山市| 凤山市| 澎湖县| 南平市| 武夷山市|