【问题标题】:I keep getting a 'cannot find symbol' error in Java trying to implement a Stack as an array我在尝试将堆栈实现为数组时在 Java 中不断收到“找不到符号”错误
【发布时间】:2014-12-27 11:45:14
【问题描述】:

所以对于一个分配,我需要使用一个数组来实现一个堆栈。我已经弄清楚了所有代码,但是由于某种原因,每当我尝试使用我的 char 数组时,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);
    }
}

有人知道我为什么会出现这些错误吗?它不喜欢我引用 charArray 的 push 和 top 中的行。

【问题讨论】:

  • 题外话,但我发现您没有 isFull 类型的方法,最好为您的 charArray 添加可调整大小以避免可能的 ArrayIndexOutOfBoundsException

标签: java arrays stack


【解决方案1】:

数组变量charArray在构造函数中被声明为局部变量,因此对其他方法不可见。

您可以将其声明为成员字段:

 private int top;
 private char[] charArray;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 2013-10-03
    • 2018-04-27
    相关资源
    最近更新 更多