java对象作为实例变量,在其中使用新运算符
我正处于学习java的早期阶段
我已经完成了一些实践练习,对于使用实例变量存储对象,特别是创建这些变量的“新”实例,我感到有些困惑
一个初学者级别的练习要求我设置一个项目,以便在某个场地进行订票。我被要求设置以下内容:
i)枚举类型,代表将在场馆举办的单个活动的类型
ii)代表活动日期的(简单)上课日期
iii)代表机票价格的(简单)舱位价格
iv)带有公共方法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方法来设置新的值。但这似乎是错的?有人能帮忙详细说明一下吗
# 1 楼答案
认为多个事件可能发生在同一个{{CD1}}中。在这种情况下,多个
Event
对象可以使用同一个Venue
对象。在代码中,每个Event
都有一个唯一的Venue
对象。如果Venue
是Event
的唯一属性(即不被其他Event
共享),则您的方法更合适因此,将一个
Venue
对象传递给Event
的构造函数或拥有一个将接受Venue
对象的setVenue
方法更合理