我正在尝试用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(){
}
}
你的array
不是类变量(不是静态的),只能通过你的mainClass
实例访问。现在声明array
是静态的。之后我建议阅读Java文档 - Understanding Class Members
编辑
正如@Oswald所提到的,你也必须使用方括号。 array
不是一种方法。
您现在可能想要使用IDE。