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 - 使用哪一个 : OpenSessionInViewInterceptor or OpenSessionInViewFilter?

java - 如何在一个 Maven 配置文件和另一个配置文件之间切换?

php - 在PHP中查找总和的最接近值的算法

c++ - 使用抽象类实现派生类的元素栈

networking - 发送 SYN 并收到 SYN-ACK 后发送到远程主机的 RST 请求

java - 如何在 iText 7 中查找文本位置和边界

java - Java新手。如何使用文本文件将项目添加到特定存储库

javascript - 为什么 JavaScript 中的 return 语句不返回任何内容?

javascript - 简单的 PHP 数组到 Javascript 数组

stack - 如何用 LISP 语言实现 Stack