作者F23ko (純潔)
看板C_Sharp
標題Re: [問題] 物件導向建構子的小小問題
時間Sun May 2 21:55:24 2010
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