任何人都可以告诉我哪里出错了我有三个文件Person.java Queue.java& Cinema.java,我设法做了没有对象Person.java的队列但是。我在使用对象时遇到了麻烦。
继承我的Queue.java
public class Queue
{
private Person[] person = new Person[10];
private int rear;
public Queue()
{
rear = 0;
}
public boolean isEmpty()
{
return rear == 0;
}
public String remove() //remove String element
{
String result = person[0].toString(); //shuffle String elements
rear--;
for (int i = 0; i < rear ; i++)
{
person[i] = person[i + 1];
}
return result;
}
public void add(Person x) //add String element
{
if (rear == person.length)
{
resize();
}
person[rear] = x;
rear++;
}
private void resize()
{
Person[] temp = new Person[person.length * 2]; //resize String array
for (int i = 0; i < person.length; i++)
{
temp[i] = person[i];
}
person = temp;
}
}
然后是Person.java(对象)。
public class Person
{
private String name;
private int age = 0;
public Person(String name1, int age1)
{
this.name = name1;
this.age = age1;
}
}
继承人主要的java文件Cinema.java
import java.util.*;
public class Cinema {
public static void main (String[] args)
{
Queue q = new Queue();
Scanner k = new Scanner(System.in);
System.out.print("Enter name: ");
String name = k.nextLine();
System.out.print("Enter Age : ");
int age = k.nextInt();
q.add(name);
System.out.println(name + " joined queue");
}
}
基本上我想让一个人加入名字和年龄的队列,然后第一个人去购买机票并检查年龄。我可以检查它只是让它用对象读取。
由于
答案 0 :(得分:0)
所以我在这里看到两个问题:
Queue类似乎是作为Stack而不是Queue实现的。我建议谷歌说一下队列是什么。
在您的主要方法
中 String name = k.nextLine();
System.out.print("Enter Age : ");
int age = k.nextInt();
q.add(name);
此处,add
方法需要person
个对象作为参数,而不是String
个对象。
代码应该是:
String name = k.nextLine();
System.out.print("Enter Age : ");
int age = k.nextInt();
Person p1 = new Person(name,age);
q.add(p1);
希望这有帮助。
修改!!! 强>:
在评论中提问。如果您想要返回队列中人员的年龄。你首先必须制作两个getter方法。一个人类内部和一个队列中的其他类:
亲自上课:
public int getAge()
{
return age;
}
在队列类中:
public Person[] getPerson()
{
return person;
}
写下这些功能后。您可以将队列中的人员年龄视为:
Person[] p = q.getPerson(); // q is the Queue object
for(int i=0;i<p.length;i++)
{
if(p[i]!=0)
{
System.out.println(p[i].getAge());
}
}
希望这会有所帮助。如果这可以帮助您找到问题的解决方案,请进行upvote并选择正确的答案。