Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-引用一个对象在它自己的类中的数据?_Java_Class_Object_Reference - Fatal编程技术网

Java-引用一个对象在它自己的类中的数据?

Java-引用一个对象在它自己的类中的数据?,java,class,object,reference,Java,Class,Object,Reference,我对我的项目有一个问题: 我有四个类文件,一个存储有关汽车特性和停放时间的信息,另一个存储他们从停车计时器购买的时间的数据,第三个是警官类,取决于他们是否超过购买时间,返回null或通过使用第四个类创建停车罚单对象 但我的问题是生成ParkingTicket对象的方法在officer类中,并且ParkingTicket对象必须包含3个参数:car对象、购买时间过去的分钟数和officer对象。但是我不知道如何在它自己的类中引用officer对象。。。我知道解决方案可能很琐碎,但我似乎被难住了 我

我对我的项目有一个问题:

我有四个类文件,一个存储有关汽车特性和停放时间的信息,另一个存储他们从停车计时器购买的时间的数据,第三个是警官类,取决于他们是否超过购买时间,返回null或通过使用第四个类创建停车罚单对象

但我的问题是生成ParkingTicket对象的方法在officer类中,并且ParkingTicket对象必须包含3个参数:car对象、购买时间过去的分钟数和officer对象。但是我不知道如何在它自己的类中引用officer对象。。。我知道解决方案可能很琐碎,但我似乎被难住了

我按照指示创建了一个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有点陌生。非常感谢您的帮助,效果非常好@阿尔泽查:不客气。请注意编辑答案。它不适用于您当前的代码,但无疑将适用于某些未来的代码。啊,好的,这是有意义的。我很好奇这是如何工作的,但还没有研究它,这似乎非常有用。再次感谢,这非常有帮助!