Я нахожусь в стадии обучения Java.Объекты как переменные экземпляра - где использовать новый оператор
Я занимаюсь некоторыми практическими упражнениями и немного замешаны в использовании переменных экземпляра для хранения объектов, в частности, создавая «новые» экземпляры этих объектов.
Одно упражнение начального уровня просит меня создать проект, позволяющий заказать бронирование билетов в месте проведения. Меня попросили настроить следующее:
i) Перечислимый тип, представляющий тип одного события, которое должно быть организовано в месте проведения.
ii) Класс (простой) Дата, обозначающая дату события.
iii) A (простой) класс Цена, представляющая стоимость билета.
iv) A (простой) класс с открытым методом getSeatingCapacity(), который возвращает емкость места.
я застрял именно на этот вопрос:
Далее, реализовать класс событий для представления одного события. i) Определите и реализуйте поля и конструктор (ы), которые вам понадобятся (см. Выше);
v) Используйте свой ответ для a) ii) для представления даты события;
vi) Используйте свой ответ для a) iii) для представления цены билета;
vii) Используйте свой ответ для a) iv) для представления места проведения.
Данный ответ выглядит следующим образом:
public class Event
{
private EventType eventType;
private String eventTitle;
private int numberOfAvailableTickets;
private Date eventDate;
private Price ticketPrice;
private Venue venue;
public Event(EventType typeOfEvent, String titleOfEvent, Venue venue, Date dateOfEvent, Price priceOfTicket)
{
eventType = typeOfEvent;
eventTitle = titleOfEvent;
this.venue = venue;
eventDate = dateOfEvent;
ticketPrice = priceOfTicket;
numberOfAvailableTickets = venue.getSeatingCapacity();
}
Однако мой ответ заключается в следующем:
private Venue location;
private String title;
private int totalTickets;
private EventType genre;
private Date date;
private Price price;
public Event(String title, int totalTickets, EventType genre)
{
location = new Venue();
this.title = title;
this.totalTickets = totalTickets
this.genre = genre;
price = new Price(90);
date = new Date("");
}
Я думал, что я должен был создать экземпляры каждого из этих объектов в конструкторе, используя новый оператор, иначе как они будут созданы? И тогда я мог бы использовать set methods для установки новых значений. Но, похоже, это неправильно? Может ли кто-нибудь помочь в разработке?
Пожалуйста, переформатируйте свой вопрос. – Maroun
Инициализация полей по параметру конструктора или путем создания объекта в конструкторе являются действительными решениями для разных вариантов использования. –