c#基礎加強2

面向對象的思維
        7.1面向過程到面向對象的轉變,其實是由執行者到指揮者的轉變
7.2面向對象不是淘汰面向過程,而是基於面向過程的
7.3面向對象的特點:封裝、繼承、多態
7.4面向對象的好處:靈活性,方便維護及管理。


8類與對象
        8.1類是對一類事物的統稱,是抽象的,是不能直接拿來使用的
8.2對象是具體的,看的見摸得着的,可以直接拿來使用的
8.3類是模板,對象是根據這個模板創建出來的,這個類裏有什麼特性或者功能,這個類的對象也具有這樣
的功能,少不得也多不得
8.4同一個類的多個對象之間沒有任何關係,唯一的關係就是他們是根據同一個類模板創建出來的
9.創建類的對象
        9.1使用Class關鍵字定義類:將類的特性定義成成員字段,將類的功能定義爲方法
9.2使用new 關鍵字創建類的對象:類是一種自定義的數據類型
                              9.21.類是引用類型,new 關鍵字做的4件事:
      1.開闢合適大小的空間2 創建對象 3調用構造方法 4返回該空間的引用地址


10訪問修飾符
10.1類的成員:private(默認) 只能在該類的內部來訪問 
      public 在任意地方都可以訪問
      protected 在本類和本類的子類中訪問
      internal在當前程序集中訪問
10.2類的訪問修飾符:internal(默認)在當前程序集中訪問
public 在任意位置可以訪問


11屬性
        11.1屬性是爲了保護對象成員字段,也可以說屬性是對字段封裝
屬性的本質是一個Get方法和一個set方法,當我們爲這個屬性賦值的時候,會調用這個屬性的set塊代碼
賦值的數據通過values關鍵字可以拿到,當我們爲這個屬性取值的時候會調用屬性的get塊代碼
屬性的數據類型不一定要和他所封裝的字段的數據類型一致(value=flase?男:女)
只讀 只寫屬性
自動屬性:當不需要爲字段在取值和賦值的時候做邏輯驗證,就可以寫成一個自動屬性,c#編譯器會自動生成一個成員字段


12構造函數
        12.1語法:訪問修飾符一般情況下是public,沒有返回值(連void都不用寫),方法名與類名一致
12.2構造函數在創建這個類的對象的時候被自動調用,通過new關鍵字調用,在類名後的括號裏面爲構造函數傳遞參數
12.3構造函數可以帶參數以及重載
12.4構造函數不能被程序員手動調用,但是在構造函數中可以調用普通的方法
12.5構造函數之間可以通過this關鍵字調用
12.6this關鍵字1代表當前對象,2調用本類的其他的構造函數
12.7 隱式構造函數


13NULL  
13.1只有引用類型的變量的值纔可以爲null值
13.2null值代表這個引用類型的變量沒有指向堆空間中的任何對象,如果去調用這個變量的成員則會拋出空指針異常




14const與readonly
14.1 const:1常量的值必須在聲明的時候就賦值
   2常量的值一旦聲明其值就不能改變
   3C#編譯器在編譯的時候聲明常量的那句話不見了,在使用常量的地方用常量的值代替了,所以常量的值不能改變
   4常量是編譯時的,所以需要在編譯的時候就要確定常量的值
14.2 readonly:1只能用於修飾成員字段
    2.其值只能在構造函數中更改
    3.是運行時的,所以其值不需要在編譯的時候確定


15枚舉
15.1枚舉是用來限定取值範圍的
15.2使用enum關鍵字定義枚舉,將枚舉成員定位在其中用逗號分隔
15.3枚舉是值類型
15.4每一個枚舉值都默認有一個int類型的數與其對應的整型值,也可以將整型值強制轉換爲其對應的枚舉值
15.5字符串轉換爲枚舉值,枚舉值轉換爲字符串

16使用面向對象思維解決問題
16.1名詞提煉法(人開門)
16.2分析整個業務流程出現了哪些名詞,就將這些名詞定位爲類,然後分析每個類中有哪些屬性、方法


17結構
17.1使用struct關鍵字定義一個結構
17.2在結構中可以定義字段(但是不能給字段賦初始值),也可以定義屬性
17.3可以定義構造函數,但是無參數的構造函數不能定義,因爲無論怎樣隱式的構造函數都存在
17.4在構造函數中,必須要爲結構的每一個字段賦值,爲屬性賦值不算,因爲屬性不一定是給字段賦值
17.5結構是值類型
17.6聲明結構最想的時候,可以不使用new關鍵字,但是這個結構對象的字段是沒有初始值的,所以在使用
之前必須爲結構對象的字段賦值
17.7聲明結構對象的時候,如果使用了new 關鍵字,那麼這個結構對象的字段有值了,因爲調用了構造函數,
而構造函數中要爲每個字段賦值
17.8當我們需要表示一個輕量級的對象的時候,我們就可以定位結構,提高程序的運行效率
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章