看板 C_Sharp 關於我們 聯絡資訊
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
andy910389:果然真的是配置兩次的問題>< 謝謝你唷 05/03 10:45
※ 編輯: F23ko 來自: 163.27.109.77 (05/03 11:12)
ssccg:重點在宣告跟初始化其實是分開的兩個動作 05/04 04:07
BETNPP:variable scope 05/05 15:31