2014-10-31 25 views
0

因此,對於需要使用數組實現堆棧的任務。我已經弄清了所有代碼,但由於某種原因,每當我嘗試使用我的char數組時,Java都說它找不到它。這是我的堆棧類。我一直在Java中嘗試實現堆棧的'找不到符號'錯誤

public class Stack 
{ 
    private int top; 

    public Stack() 
    { 
     char []charArray = new char [50]; 
     top = -1; 
    } 

    public void push(char c) 
    { 
     top++; 
     charArray[top] = c; 
    } 

    public void pop() 
    { 
     top--; 
    } 

    public char top() 
    { 
     return charArray[top]; 
    } 

    public void makeNull() 
    { 
     top=-1; 
    } 

    public boolean isEmpty() 
    { 
     return (top==-1); 
    } 
} 

有沒有人有任何想法,爲什麼我有這些錯誤?它不喜歡push和top中引用charArray的行。

+0

題外話,但我看到你沒有一個'isFull'類型的方法,最好加上大小可調整到你的'charArray'避免可能'ArrayIndexOutOfBoundsException' – Ian2thedv 2014-10-31 08:21:03

回答

3

數組變量charArray在構造函數中聲明爲局部變量,因此對其他方法不可見。

你可以聲明它作爲一個成員字段:

private int top; 
private char[] charArray; 

public Stack() 
{ 
    charArray = new char [50]; 
    top = -1; 
} 
+0

啊,非常感謝!其中一件事我剛剛錯過了。 – Alex2395 2014-11-03 02:34:01