簡體   English   中英

在Java中,如何調用具有不同變量類型的構造函數?

[英]In Java, how to invoke a constructor with different variable types?

我想這是一個簡單的問題,但是我才剛剛開始學習! :P

我需要在checkParking()網關方法中調用ParkingTicket(parker,parkee)構造函數(如果“ if”語句為true),但出現以下錯誤: 不兼容的類型:int無法轉換為Car

public class ParkingTicket
{
  private static int count = 1000;
  private final String referenceNumber;
  private final String carLicensePlate;
  private int carMinutesParked;
  private int meterMinutesPaid;
  private static final String prefix = "V";

  private ParkingTicket(String recordedLicense, int carParkedMinutes, int meterPaidMinutes)
  {
      count = (count + 1);
      referenceNumber = prefix + count;
      carLicensePlate = recordedLicense;
      carMinutesParked = carParkedMinutes;
      meterMinutesPaid = meterPaidMinutes;
  }

  private ParkingTicket(Car parker, ParkingMeter parkee)
  {
      this(parker.getLicensePlate(),
           parker.getMinutesParked(),
           parkee.getMinutesPaid());
  }

  public static int checkParking(Car minutesParked, ParkingMeter minutesPaid)
  {
    if (minutesParked.getMinutesParked() > minutesPaid.getMinutesPaid())
    {
       new ParkingTicket(minutesParked.getMinutesParked(), minutesPaid.getMinutesPaid());       
    }
    else
    {
       ParkingTicket pt1 = null;
    }
  }
} 

在此先感謝您提供的所有幫助!

在線上

new ParkingTicket(minutesParked.getMinutesParked(), minutesPaid.getMinutesPaid());

您正在嘗試使用構造函數

 private ParkingTicket(Car parker, ParkingMeter parkee)

如您所見,這需要兩個參數, CarParkingMeter

您傳遞的參數是int

我猜您想調用第一個構造函數? 您只需要更改行以包含許可證

 new ParkingTicket(minutesParked.getLicensePlate(), minutesParked.getMinutesParked(), minutesPaid.getMinutesPaid());       

您應該使用傳遞構造函數期望的參數:

ParkingTicket ticket = new ParkingTicket(minutesParked, minutesPaid); 

我會更改那些變量的名稱。 minutesParked是不是一個好名字CarminutesPaid是不是一個好名字ParkingMeter

PS,您可能想對創建的實例做些事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM