Re: [問題] 物件導向建構子的小小問題

看板C_Sharp作者 (純潔)時間15年前 (2010/05/02 21:55), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串2/2 (看更多)
namespace ConsoleApplication2 { class stack { public int num=0; //用來存放陣列元素的索引值 public int[] anyData={0}; //宣告陣列,類別的成員函式才能使用他 (陣列大小未知) public stack(int n2) //建構子 { int[] anyData = new int[n2];//由於題目規定,且現在才能知道陣列大小, 所以又宣告配置一次(這樣感覺有錯...) 改成 anyData = new int[n2]; 雖然推文有寫了,但我要補一下觀念 當你在一個變數前面看到「型別」 就是int、float甚至是一個物件、結構、委派的時候 就是宣告新變數 在方法內部,可以宣告名稱跟外面一樣的變數 也就是說,內部有個anyData,外面又一個anyData,二不同的變數 當區別內跟外的時候,可以用關鍵字this 例如 this.anyData = anyData; //把方法內部的anyData指派給外面的欄位 如果是靜態欄位,則直接用物件名稱 例如stack.anyData } public void push(int n) { anyData[num] = n; num++; } .................... } 之前物件觀念還沒搞好時,也遇過這種問題 = = -- 我... 我一點都不糟糕啦!>///< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.27.109.99

05/03 10:45, , 1F
果然真的是配置兩次的問題>< 謝謝你唷
05/03 10:45, 1F
※ 編輯: F23ko 來自: 163.27.109.77 (05/03 11:12)

05/04 04:07, , 2F
重點在宣告跟初始化其實是分開的兩個動作
05/04 04:07, 2F

05/05 15:31, , 3F
variable scope
05/05 15:31, 3F
文章代碼(AID): #1BtOHGSW (C_Sharp)
文章代碼(AID): #1BtOHGSW (C_Sharp)