从java中同一类的其他方法访问全局数组时出错

问题描述 投票:0回答:1

我正在尝试用Java实现Queue ADT。我只有一个包含四种方法的类:main,enqueue,dequeue,view(尚未实现此功能)。所以当我尝试编译代码时,我收到以下错误:

C:\Users\Sandeep Sharma\Documents\Software Project files\JAVA Programs\queue Implementation>javac mainClass.java mainClass.java:53: error: cannot find symbol array(++front) = input; ^ symbol: method array(int) location: class mainClass mainClass.java:64: error: cannot find symbol System.out.println("The value is: " + array(rear)); ^ symbol: method array(int) location: class mainClass 2 errors

我尝试将int数组声明为static int[] array = new int[10]静态,但这不起作用。

要求是:访问所有方法中的数组,以对它们执行与队列相关的操作。

我的代码是:

// Implementing Queue data structure
import java.util.*;
class mainClass{

    // global variables 
    static int front=0,rear=0;
    int[] array = new int[10];

    //main method
    public static void main(String args[]){
        // variable declaration
        int runChoice=0,opChoice=0;

        Scanner scan = new Scanner(System.in);

        // user control menu

        do{
            System.out.println("***Select option***:");
            System.out.println("1 to enqueue an element.");
            System.out.println("2 to dequeue element.");
            System.out.println("3 to view element.");
            System.out.print("Your Option: ");
            opChoice = scan.nextInt();
            switch(opChoice){
                case 1: enqueue();
                break;

                case 2: dequeue();
                break;

                case 3: view();
                break;

                default: System.out.println("Invalid input!");
            }

            System.out.print("Enter 1 to continue operation: ");
            runChoice = scan.nextInt();
        }while(runChoice==1);
    }

    public static void enqueue(){
        int input;
        Scanner scan = new Scanner(System.in);

        if(front == 9)
            System.out.println("Queue is full.");

        else{
            System.out.print("Enter your input: ");
            input = scan.nextInt();
            array(++front) = input;
        }
    }

    public static void dequeue(){
        if(front == rear){
            System.out.println("Queue is empty");
            front = rear = 0;
        }

        else{
            System.out.println("The value is: " + array(rear));
            rear++;
        }
    }

    public static void view(){

    }


}
java arrays global-variables
1个回答
0
投票

你的array不是类变量(不是静态的),只能通过你的mainClass实例访问。现在声明array是静态的。之后我建议阅读Java文档 - Understanding Class Members


编辑 正如@Oswald所提到的,你也必须使用方括号。 array不是一种方法。

您现在可能想要使用IDE。

© www.soinside.com 2019 - 2024. All rights reserved.