java - 我在 Java 中尝试将 Stack 实现为数组时不断收到 'cannot find symbol' 错误

标签 java arrays stack

因此,对于作业,我需要使用数组实现堆栈。我已经弄清楚了所有代码,但由于某种原因,每当我尝试使用我的 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);
    }
}

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

最佳答案

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

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

 private int top;
 private char[] charArray;

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

关于java - 我在 Java 中尝试将 Stack 实现为数组时不断收到 'cannot find symbol' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26669864/

相关文章:

java - 我可以使用 EL 从 JSP 访问枚举类的值吗?

java - 如何使用Spring在Helper类中获取 Autowiring 的bean

java - 如何使用 Jackson 解析具有不同类型的无名数组

c - 线程内读取错误的数组

c - 推送到仅包含 C 中唯一值的堆栈

java - 索引越界异常(堆栈)

java - 实现游戏同时击键

java - 从另一个 xml 布局添加 ListView 时出现 NullPointerException

java - 奥运会java编码

java - 堆栈中的push(int[][])复制相同的值Java