首先,簡單的一句**
student student = new student();
建立乙個叫做student的物件讓student這個引用變數指向。
其實,這麼一句**分為5個部分。編譯器從左向右解析
1.student,類載入,解析student 檢視整個文件,發現這個類,就把這個類的位元組碼,載入到記憶體中,把類**載入到**區生成類圖(包括類名,屬性和方法),程式必須載入到記憶體才能執行。
2.student,建立引用變數(相當於指標,只能指向這個類或者其子類的物件)
3.new student,建立student物件(例項),只有屬性沒有方法(屬性為自身屬性加上系統附加的this和super,this指向自己,super指向父類,還有乙個方法指標)。
4.student(),執行構造方法,對例項進行初始化。
5.把例項的位址賦給引用變數讓引用變數指向例項能夠呼叫。
物件找方法靠方法指標,方法在執行中用到屬性靠this指標
C物件導向 構建物件
一組鬆散的變數是比較難追蹤的,所以一般採用結構體將其封裝起來 structslogstruct 一般我們會選擇直接進行建立,像這樣 static struct slogstruct glogdata 但是如果要讓c 看起來更像物件導向,那麼這個結構體應該在初始化的時候進行建立,分配記憶體,並返回給呼...
Java構建器模式
當建立物件需要傳入多個引數的時候我們通常會根據引數的數量寫不同的構造器,具體如下 public a int a public a int a,int b public a int a,int b,int c 根據不同的引數呼叫不同的構造器,但是當引數多了的時候,這種方式不夠靈活,所以會實現動態傳參的...
JS 構建物件例項
構建乙個地圖,1.需要乙個世界類,包含兩個屬性,乙個圖例屬性,乙個儲存地圖的屬性。2.需要乙個地圖類,地圖類封裝儲存,取出地圖元素的方法,以及儲存地圖。乙個格仔類,該類為該格仔,x,y座標。3.動物類,儲存動物能用方向等資訊。流程 給世界類輸入地圖和圖例 物件 1,世界類儲存輸入的地圖為地圖類,2,...