public class thisdemo
}class student
@override
public string tostring()
}
列印結果:student [ name=null, age=0]
賦值沒有成功,說明:name(區域性變數)=name(區域性變數);
而不是name(成員變數)=name(區域性變數);
public student(string name, int age)
列印結果:student [ name=小明明, age=20]
這樣子就可以賦值成功啦
public static void main(string args)
//為什麼加入this後就可以區分呢?
因為this當前代表的是s例項(物件)相當於
s.name="小明明";
s.age="20";
//再可以理解如下
this.name=例項(物件).name="小明明";
為student再新增兩個構造器,修改後如下:
class student
public student(string name, int age)
public student(string name)
@override
public string tostring()
}
//構造器用法-->this();跟函式一樣()中可以寫引數
構造器呼叫一般是這樣子用的.不同的構造器中存在相同**.為了復用性。可以在引數少的構造器中呼叫引數多的構造器,如下:
class student
public student(string name, int age)
public student(string name)
@override
public string tostring()
}
測試結果1:
public static void main(string args)
構造器3已呼叫
構造器2已呼叫
構造器1已呼叫
student [ id=0, name=小明明, age=0]
測試結果2:
public static void main(string args)
構造器3已呼叫
構造器2已呼叫
student [ id=0, name=小明明, age=20]
總結:這樣子可以在引數最多的構造器中編寫代表。其他構造器負責呼叫引數最多的那個構造器就好了
this的三種常見用法介紹完畢!怎麼樣很容易吧.
c new三種用法
前幾天去家公司面試,有一道這樣的題 寫出c 中new關鍵字的三種用法,思前想後挖空心思也只想出了兩種用法,回來查了下msdn,還真是有第三種用法 用於在泛型宣告中約束可能用作型別引數的引數的型別,這是在framework 2.0 中定義泛行時才會使用到的,自己對c 2.0 中的支援還只是粗通皮毛,怪...
c using 三種用法
1.using指令。using 命名空間名字,這樣可以在程式中直接用命令空間中的型別,而不必指定型別的詳細命名空間。這個功能也是最常用的,幾乎每個cs的程式都會用到。例如 using system 一般都會出現在 cs中。2.using別名。using 別名 包括詳細命名空間資訊的具體的型別。這種做...
java this 3種常見用法 詳解
public class thisdemo class student override public string tostring 列印結果 student name null,age 0 賦值沒有成功,說明 name 區域性變數 name 區域性變數 而不是name 成員變數 name 區域性...