namespace ConsoleApplication3 { class Class1 { private string _name; public string Name { get { return _name; } set { _name = value; } } private string _type; public string Type { get { return _type; }//取值 set { _type = value; }//賦值 } private string _food; public string Food { get { return _food; } set { if (value=="meat") { _food = "我吃肉!"; } else { _food = "我不吃別的!"; } } } } }
namespace ConsoleApplication3 { class Class2//function 重載 { public void function(string s) { Console.WriteLine(s); } public void function(string s,string s1) { Console.WriteLine(s+s1); } } }
namespace ConsoleApplication3 { class Class3 { /// <summary> /// 構造函數,每個類至少有一個構造函數(class a = new class()),函數名字與類名相同,而且沒有返回值,下面的public不寫也能夠默認存在,構造函數也能夠重載 /// </summary> public void class4()//不是構造函數,是新的方法 { } public Class3()//默認的構造函數 { } public Class3(int a)//帶參數的構造函數數 { Num1 = a; } public int Num1; public static int Num2;//靜態成員,不隨着NEW造對象走 } }
namespace ConsoleApplication3 { class Class4 { public Class4(string sname,string ssex,int sold) { name = sname; sex = ssex; old = sold; } public string name; public string sex; public int old; } }
namespace ConsoleApplication3 { class Program { static void Main(string[] args) { Class1 s = new Class1(); s.Food = "meat"; s.Name = "tiger"; s.Type = "less"; Console.WriteLine(s.Food);//以上爲封裝 Class2 data = new Class2(); data.function("123"); data.function("aaa"+"123");//函數重載 Class3 data1 = new Class3(); data1.Num1 = data1.Num1 + 3;//data1點不出Num2 Class3.Num2 += 3;//不經過data1,直接經過Class調用 Class3 data2 = new Class3(); data2.Num1 = data1.Num1 + 3; Class3.Num2 += 3;//靜態成員Num2不隨着造的對象走,Num2爲3,3+3=6 Console.WriteLine(Class3.Num2);//爲6 Console.WriteLine(data2.Num1); Console.WriteLine(data1.Num1); Class3 data4 = new Class3();//構造函數的重載 Class3 data3 = new Class3(2);//構造函數的重載有參數的 Console.WriteLine(data3.Num1);//構造函數結果爲2,爲某些成員變量賦初始值 Class4 t1 = new Class4("張三", "男", 18);//用構造函數給變量賦初始值 Class4 t2 = new Class4("李四", "女", 17); Console.WriteLine(t1.name+t1.old+t1.sex); Console.ReadLine(); } } }