一、與生活中的類一樣 ,程式中的類描述了一種物件,定義乙個完整的類,需要包括字段、屬性、方法、建構函式和析構函式(析構函式在程式編譯時自動生成,可以不必自己寫)。
定義類的方法和字段時,要通過訪問修飾符來修飾類和類成員的訪問許可權。
public為公共訪問,可以有任何其他類成員訪問。private為私有訪問,只在定義它的類中訪問。protect為受保護訪問,可以在類內部和以該類為基類的派生類中訪問。internal為內部訪問,只有在同一程式集中的檔案中,內部成員才能被訪問。
eg:
using程式執行結果為:system;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.threading.tasks;
namespace
}class
time
public time(int year,int month,int
day)
public
void
output()
monht: day
", year, month, day);}}
}
二、靜態類
靜態類是類的一種,與非靜態類的區別為:靜態類不能被例項化,即不能使用new關鍵字建立靜態類的例項物件
eg:public static class day
public static void output()
console.writeline("qwer");
呼叫時只能使用類名呼叫
eg: day.output();
三、函式的過載(overloading)
使用過載的目的是為了使用同一方法名實現不同的功能。說的明白一點就是過載就是寫的函式的名字一樣,函式的引數不一樣。
eg:
using輸出結果:system;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.threading.tasks;
namespace
}class
time
public time(int year,int month,int
day)
public time(int year,int day)//
過載函式
public time(int month)//
過載函式
public
void
output()
monht: day
", year, month, day);}}
}
當使用過載函式賦值時,各個time物件輸出的值不同,但不知道為什麼未給賦值時,輸出的是0,而不是輸出建構函式的1???
四、overriding
overriding是在繼承中允許在子類修改函式的功能
eg:
using其中,time2 overriding time中的output,輸出結果為system;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.threading.tasks;
namespace
}public
class
time
public time(int year,int month,int
day)
public
virtual
void
output()
monht: day
", year, month, day);}}
public
class
time2:time}}
C 學習筆記之類和物件
建構函式 析構函式 訪問控制 例子1 帶預設引數 檔案circle.h if defined circle h define circle h include using namespace std class circle void draw 複製建構函式 circle circle c void...
《C 學習筆記》之類和物件
一,對類和物件的理解 人們可以通過類自定義自己需要的型別,新的型別中可以有資料,可以有對資料進行處理的方法。然後對類進行例項化後,就產生了物件,類是物件的抽象,物件是是類的具體化。比如家庭是乙個類,這個類中有資料 家庭成員,方法 家庭成員的日常活動。然後這個類具體化後可以產生甲同學的家庭,乙同學的家...
C 學習筆記之 類 物件
類是描述具有相同特徵和行為的抽象。物件是類的例項。類的作用就是分類!class關鍵字 class 類名 1 字段 類的共有屬性class car比如以上的brand,price,displacement 簡單的應用 using system namespace lesson12 class main...