我对我的项目有疑问:
我有四个班级档案,一个存储有关汽车特性的信息以及停放的时间,另一个存储他们从停车计时器购买了多少时间的数据,第三个是根据他们是否超过他们的购买时间的官员类别,要么通过使用第四类返回null或创建停车罚单对象。
我的问题是,生成ParkingTicket对象的方法是在官员类中,停车票对象必须有3个参数:汽车对象,超过购买时间的分钟数和官员对象。但我不确定如何在自己的类中引用官方对象...我知道解决方案可能是微不足道的,但我似乎只是被难倒了。
我按照我的指示创建了一名军官的副本对象,但我不确定如何在军官级别中引用它。 (我有点愚蠢的时刻,并尝试使用复制构造函数的参数作为停车罚单对象的参数......)
有人能指出我正确的方向吗?我将在下面发布我的官员类代码和错误消息。感谢您的帮助!
// This class holds information about the Police Officer
public class PoliceOfficer {
private String name; // Officer's name
private String badgeNumber; // Officer's badge #
private int minutes;
// Initialize PoliceOfficer object
public PoliceOfficer(String offName, String badgeNum)
{
name = offName;
badgeNumber = badgeNum;
}
// Create Officer copy object
public PoliceOfficer(PoliceOfficer officer)
{
name = officer.name;
badgeNumber = officer.badgeNumber;
}
// Set Officer name and badge number fields
public void setOfficer(String pName, String pNumber)
{
name = pName;
badgeNumber = pNumber;
}
// Method that executes Officer's car inspection vs. Parking meter time -
// returns null if time parked is less than minutes on the meter
public ParkingTicket patrol(ParkedCar car, ParkingMeter meter)
{
if (car.getMinutes() > meter.getMinutesPurchased())
{
minutes = car.getMinutes() - meter.getMinutesPurchased();
ParkingTicket ticket = new ParkingTicket(car, officer, minutes);
return ticket;
}
else
return null;
}
// Generate toString method for officer's info to be displayed on the ticket
public String toString()
{
return "Name: " + name +
"\nBadge Number: " + badgeNumber;
}
}
PoliceOfficer.java:46: error: cannot find symbol
ParkingTicket ticket = new ParkingTicket(car, officer, minutes);
^
symbol: variable officer
location: class PoliceOfficer
5 errors
----jGRASP wedge2: exit code for process is 1.
----jGRASP: operation complete.
答案 0 :(得分:3)
只需使用this
代表您所在目标的当前PoliceOfficer。例如:
// substitute *this* for the officer parameter
ParkingTicket ticket = new ParkingTicket(car, this, minutes);
请注意,this
引用您所在类的当前对象。请注意,如果您在内部类中并且尝试引用外部类的对象,则需要指定this
你的意思是预先挂起类名。例如,如果您在PoliceOfficer类的内部类中并且希望引用当前的官员,则可以使用PoliceOfficer.this
。