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



我正在尝试在Java中实现Queue ADT。我只有一个类,有四个方法:main,enqueue,dequeue,view(尚未实现此功能)。因此,当我尝试编译代码时,出现以下错误:

C:UsersSandeep SharmaDocumentsSoftware Project filesJAVA Programsqueue 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(){
}

}

您的array不是类变量(非静态),只能由mainClass的实例访问。现在声明array为静态。之后,我建议阅读 Java 文档 - 了解类成员


编辑
如@Oswald所述,您还必须使用方括号。array不是一种方法。

您现在可能希望使用 IDE。

最新更新