Java-引用一个对象在它自己的类中的数据?
我对我的项目有一个问题: 我有四个类文件,一个存储有关汽车特性和停放时间的信息,另一个存储他们从停车计时器购买的时间的数据,第三个是警官类,取决于他们是否超过购买时间,返回null或通过使用第四个类创建停车罚单对象 但我的问题是生成ParkingTicket对象的方法在officer类中,并且ParkingTicket对象必须包含3个参数:car对象、购买时间过去的分钟数和officer对象。但是我不知道如何在它自己的类中引用officer对象。。。我知道解决方案可能很琐碎,但我似乎被难住了 我按照指示创建了一个officer的副本对象,但我不知道如何在officer类中引用它。(我有点愚蠢,试图使用复制构造函数的参数作为停车罚单对象的参数…) 也许有人能给我指一下正确的方向吗?我将在下面发布我的军官级别代码和错误消息。谢谢你的帮助Java-引用一个对象在它自己的类中的数据?,java,class,object,reference,Java,Class,Object,Reference,我对我的项目有一个问题: 我有四个类文件,一个存储有关汽车特性和停放时间的信息,另一个存储他们从停车计时器购买的时间的数据,第三个是警官类,取决于他们是否超过购买时间,返回null或通过使用第四个类创建停车罚单对象 但我的问题是生成ParkingTicket对象的方法在officer类中,并且ParkingTicket对象必须包含3个参数:car对象、购买时间过去的分钟数和officer对象。但是我不知道如何在它自己的类中引用officer对象。。。我知道解决方案可能很琐碎,但我似乎被难住了 我
// 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.
只需使用
此
表示您所在对象的当前警官。例如:
// substitute *this* for the officer parameter
ParkingTicket ticket = new ParkingTicket(car, this, minutes);
请注意,
此
指的是您所在类的当前对象。请注意,如果您在一个内部类中,并且试图引用外部类的对象,则需要指定预挂起类名所指的this
。例如,如果您在警察类的一个内部类中,并且希望引用当前的警察,那么您将使用警察。这哇,真的就这么做了吗?太神奇了。。。很抱歉问这么简单的问题,我以前从未真正使用过这个,我对java有点陌生。非常感谢您的帮助,效果非常好@阿尔泽查:不客气。请注意编辑答案。它不适用于您当前的代码,但无疑将适用于某些未来的代码。啊,好的,这是有意义的。我很好奇这是如何工作的,但还没有研究它,这似乎非常有用。再次感谢,这非常有帮助!