Я пытался кодировать проект в кино, но я не могу это понять. Когда я запускаю свою программу, он выводит только последнее значение, введенное в setAge, поэтому позволяет всем, кто находится перед ним, в кино, даже если они не соответствуют возрасту. Я считаю, что это имеет какое-то отношение к объекту person, не являющемуся массивом, но я не уверен, как решить это, какие-либо идеи?Проекты и проекты объектов для кинотеатров
import java.util.Scanner;
public class Cinema
{
public static void main(String[] args)
{
QueueWithArray q = new QueueWithArray();
Person person = new Person();
Scanner kybd = new Scanner(System.in);
System.out.print("Join (j), leave (l) or end (e)? ");
String action = kybd.nextLine();
while (!action.equalsIgnoreCase("e"))
{
if (action.equalsIgnoreCase("j"))
{
System.out.print("Enter your name: ");
String name = kybd.nextLine();
person.setName(name);
q.add(name);
System.out.println("What is your age? ");
int age = kybd.nextInt();
person.setAge(age);
kybd.nextLine();
System.out.println(name + " is going to the cinema and is " + age + " years old.");
}
else if (action.equalsIgnoreCase("l"))
{
if (!q.isEmpty())
{
if (person.getAge() >= 15)
{
System.out.println(q.remove() + " has left the queue and entered the cinema");
}
else
{
System.out.println(q.remove() + " has left the queue, but is not old enough to watch the film");
}
}
else
{
System.out.println("Queue empty");
}
}
else
{
System.out.println("Invalid operation");
}
System.out.print("Join (j), leave (l) or end (e)? ");
action = kybd.nextLine();
}
}
}
Здравствуйте, это хороший ответ, но теперь, когда я получил линию Person человек = новое лицо (Назовите возраст); он не примет его, так как он имеет параметры – Luke
Вам необходимо создать конструктор для объекта person, который принимает параметры. Таким образом, это будет похоже на public Person (String name, int age) {this.name = name; this.age = age;} –
Я сделал это, но теперь его ошибка, говорящая, что человек не может быть изменен на строку, когда я пытаюсь объявить qPerson – Luke