多態
- 虛方法 virtual override
- 抽象類 abstract override
- 接口 interface
多態就是指不同對象收到相同消息時,會產生不同行為,同一個類在不同場合下表現出不同的行為特征.
接口
- 接口是一種能力
- 接口是一種規范
- 接口功能要單一
- 顯式實現接口(接口.函數)
訪問修飾符
- public 在哪都可以訪問
- private 私有的,只能在當前類的內部進行訪問
- internal 只能在當前程序集中訪問
- protected 受保護的,可以在當前類以及該類的子類中訪問
- 注意點:
- 能夠修飾類的訪問修飾符只有兩個:public和internal(默認就是internal)
- 在同一個項目中,public的權限跟internal是一樣的
- 子類的訪問權限不能高于父類的訪問權限
靜態和非靜態
- 靜態成員:被static修飾
- 實例成員:不被static修飾
- 靜態成員先于實例成員被加載到內存中,只有創建了對象,才有實例成員.
- 靜態類中只能存在靜態成員.
- 什么時候使用靜態(作為工具類,在整個項目中資源共享)
設計模式之單例模式
在整個程序中,我們要保證對象必須是唯一的
實現:
- 構造函數私有化
- 聲明一個靜態字段,作為全局唯一的單例對象
- 聲明一個靜態函數,返回全局唯一的對象
設計模式之簡單工廠設計模式
核心:把所有的子類都當做父類來看待
值類型和引用類型
- 值類型:int double char bool decimal struct enum
- 引用類型:string 數組 自定義類 接口 委托
- 值類型的值存儲在內存的棧上,引用類型的值存儲在堆中.棧上存儲數據的效率要高于堆.
- 值傳遞:把值類型作為參數傳遞,把值本身進行傳遞.(** 注意:ref可以把值傳遞改變為引用傳遞 **)
- 引用傳遞:把引用傳遞的值作為參數傳遞,傳遞的是引用
常用類庫String
重要特性
- 不可變性
- 駐留池特性
常用屬性及方法
- 屬性
length //獲得字符串中字符的個數 - 方法
** isNullOrEmpty() 靜態方法,判斷為null或者為""(靜態方法) **
ToCharArray() 將string轉換為char[]
ToLower() 小寫,必須接收返回值
ToUpper() 大寫
Equals() 比較兩個字符串是否相同.(忽略大小寫的比較,StringComparation)
** IndexOf() 如果沒有找到對應的數據,返回-1 **
** LastIndexOf() 如果沒有找到對應的數據,返回-1 **
** Substring() 截取字符串 **
Split() 分割字符串
Join() 靜態方法,加入
Replace() 替換
常用類庫 StringBuilder
StringBuilder僅僅是拼接字符串的工具,大多數情況下還需要把StringBuilder轉換為String
- 常用函數
StringBuilder sb = new StringBuilder();
sb.Append(); //追加字符串
sb.ToString(); //把SpringBuilder轉換為字符串
sb.Insert(); //插入字符串
sb.Replace(); //替換字符串