一、封裝
目的:保護類,讓類更加安全。
做法:讓類裡面的成員變數變為私有(即訪問修飾符)的,做相應的方法或者屬性去間接的操作成員變數
※訪問修飾符
private 私有的只能在該類中訪問
protected 受保護的只能在該類和它的子類中訪問
public 公有的在任何地方都可以訪問
△封裝成員方法來間接操作類裡面的成員變數
例:
view code
view code
△使用成員屬性來間接訪問類裡面的成員變數
定義變數的時候最好用_下劃線開頭
選中要做的成員變數右鍵→重構→封裝字段(ctrl+r,e)
自動生成的**不是成員變數也不是成員方法 是成員屬性
造好之後可以通過成員屬性操作成員變數
例:
view code
view code
構造方法(函式):
作用:造物件所要呼叫的方法,用來建立物件
每乙個類都有乙個構造方法,不寫也有只不過看不到而已
特殊性:寫法特殊 (方法名=類名;沒有返回值)
執行時間特殊(建立物件時執行)
用途:可以對成員進行初始化
舉個例子:
view code
view code
舉個栗子:使用物件導向來求兩個圓之間的面積
view code
函式過載:
函式過載需要的條件:函式名要相同,引數的個數或者引數的型別不同
this關鍵字:
雖然寫在類裡面,但不是屬於類的,而是屬於該物件的
一般來說在類裡面 this關鍵字是可以省略的,但是如果有乙個方法形參名字和成員名字重複,這時候再呼叫該物件裡面的成員的時候需要加this關鍵字
is關鍵字:判斷變數是不是屬於某個型別
例:if (y2 is ren)
s = "是乙個人";
else
s = "不是乙個人";
as關鍵字:轉換型別(只能轉換相容型別,可以將子類物件轉換為父類物件)
二、繼承
子類可以繼承父類的一切
特點:單繼承 乙個子類只能有乙個父類 乙個父類可以有多個子類
c#特殊點:所有類的祖先都是object
base關鍵字:在子類中代表父類物件,用法和this關鍵字相同
如果父類有構造方法,那麼子類也要有構造方法,如果父類構造需要引數,那麼子類構造也必須有相應的引數。
子類構造後面可以通過base呼叫父類的構造方法
public china(string m):base(m) {}
view code
sealed關鍵字:
密封類 該類不可以被繼承
sealed class 類名
部分類:partial
可以將乙個類拆分成多個部分,分別放在多個檔案內
呼叫需要namespace相同,或用use引用
namespace 命名空間 相當於虛擬資料夾
partial class 類名 //拆分的類均加partial
三、多型
1.編譯多型
函式過載
2.執行多型
概念:當父類引用指向子類例項的時候,由於子類對父類的方法進行了重寫,在呼叫該方法的時候表現出的不同就稱為多型
條件:必須要有繼承 父類引用指向子類例項 子類必須對父類的方法進重寫
黎克特制代換原則:如果有乙個地方需要使用到父類物件,那麼你可以將乙個子類物件給他
view code
物件導向三大特性 封裝 繼承 多型
封裝 封裝 是將類的某些資訊隱藏在類的內部,不允許外部程式直接訪問,而是通過該類提供的方法來實現對隱藏資訊的操作和訪問。存在乙個邊界,邊界之內的細節隱藏起來,只留下對外的藉口 如 筆記本,手機,飲水機 封裝的好處 只能通過規定方法訪問資料,安全 易用 簡單 易維護。隱藏類的實現細節 方便加入控制語句...
物件導向三大特性 繼承 封裝 多型
繼承 即子類可以繼承父類的除了所有屬性 方法外的所有內容。子類繼承父類,只需要在類名後面加上 父類名 即可。如下 定義乙個父類,animals class animals pass 再定義乙個子類cat,繼承父類animals class cat animals pass 這樣cat類即可繼承父類的...
物件導向三大特性 封裝,繼承,多型
把乙個物件的屬性私有化,同時提供一些可以被外界訪問的屬性的方法。即並不是所有屬性都需要提供。子類繼承父類,子類擁有父類的所有屬性和方法,但是不能訪問父類的私有屬性和方法,只能擁有 子類可以擁有自己的屬性和方法 子類可以用自己方式實現父類方法,即重寫。程式中定義的引用變數所指向的具體型別 和 該引用變...