2017-09-16 87 views
-4

好吧,所以我不得不創建一個程序,這是一個停車票模擬器。我編譯它,大部分它的工作,除了這是一個類型不匹配的小笨拙的錯誤。這是一個很大的代碼,所以我就放棄了類錯誤是:Java類型不匹配?

KNW_PoliceOfficerClass

public class KNW_PoliceOfficer 
{ 
    private String name; 
    private int badge; 
    private static double ticket; 

     public KNW_PoliceOfficer() 
     { 

     } 

     public KNW_PoliceOfficer(String poName, int poBadge) 
     { 
     name = poName; 
     badge = poBadge; 
     } 

     public String getName() 
     { 
     return name; 
     } 
     public int getBadge() 
     { 
     return badge; 
     } 

     static KNW_ParkingTicket search(KNW_ParkedCar car, KNW_ParkingMeter meter) 
     { 
     int time = KNW_ParkedCar.getMinutes() - KNW_ParkingMeter.getMinPurchased(); 

     if(KNW_ParkedCar.getMinutes() > KNW_ParkingMeter.getMinPurchased()) 
     { 
      if(time <= 60) 
      { 
      ticket = 25; 
      } 
      else 
      { 
      ticket = 25 + (10 * (time/60)); 
      } 
      return ticket; 
     } 


     } 

KNW_ParkingTicketClass

public class KNW_ParkingTicket 
{ 
    private KNW_ParkedCar vehicle; 
    private KNW_PoliceOfficer copster; 
    private double fine; 
    private int minutes; 
    private double firstFine = 25; 
    private double moreFine = 10; 

    public KNW_ParkingTicket(KNW_ParkedCar car, KNW_PoliceOfficer cop, double guyFine, int mins) 
    { 
    vehicle = car; 
    copster = cop; 
    fine = guyFine; 
    minutes = mins; 
    } 

    public void getTotalFine() 
    { 
    int time = KNW_ParkedCar.getMinutes() - KNW_ParkingMeter.getMinPurchased(); 

    if(time <= 60) 
    { 
    fine = firstFine; 
    } 
    else 
    { 
    fine = firstFine + moreFine * (time/60); 
    } 
    } 

    public double getFirstFine() 
    { 
    return firstFine; 
    } 
    public double getMoreFine() 
    { 
    return moreFine; 
    } 
    public KNW_ParkedCar getVehicle() 
    { 
    return vehicle; 
    } 
    public KNW_PoliceOfficer getCopster() 
    { 
    return copster; 
    } 
    public int getMinutes() 
    { 
    return minutes; 
    } 
    public double getFine() 
    { 
    return fine; 
    } 


} 

,這裏是什麼錯誤說:

File: C:\Users\Kyle Welch\KNW_PoliceOfficer.java [line: 46] 
Error: Type mismatch: cannot convert from double to KNW_ParkingTicket 

任何幫助,將不勝感激!

+0

哪一行?請顯示完整的錯誤信息。 –

+0

該代碼有很多錯誤,包括錯誤使用靜態,調用方法,就好像它們是靜態的,當它們應該是實例時....你根本沒有使用方法參數。也許是從頭開始寫的。 –

+0

你在'KNW_PoliceOffice'中聲明'ticket'是一個'double',在你的'search'方法中你說你要返回一個'KNW_ParkingTicket',但實際上你返回的是'ticket',這是一個double。 – nbokmans

回答

0

您的search方法應返回KNW_Parking_Ticket,但您返回ticket這是一個double

1

問題是ticket參數,你這樣定義它:double ticket;

KNW_ParkingTicket方法

,你可以看到完整的方法與參數在這裏:

static KNW_ParkingTicket search(KNW_ParkedCar car, KNW_ParkingMeter meter)

需要返回KNW_ParkingTicket類型,但您要返回的名稱爲ticketdouble其中:

return ticket;

+0

你介意告訴我這是如何工作的嗎?我會很感激! –

+1

小心Mohsen - 我懷疑我們在這裏有一個[幫助吸血鬼](https://meta.stackexchange.com/questions/19665/the-help-vampire-problem)。 –

+0

@KyleWelch我沒有責任爲你編碼,我只回答了這是爲什麼發生異常的操作! –

-1

NW_PoliceOfficer類中的搜索方法返回類型是KNW_ParkingTicket,但是您返回的是double方法,搜索方法返回類型爲double。

試試這個:

靜態搜索(KNW_ParkedCar車,KNW_ParkingMeter米){ INT時間= KNW_ParkedCar.getMinutes()-KNW_ParkingMeter.getMinPurchased();

如果(KNW_ParkedCar.getMinutes()> KNW_ParkingMeter.getMinPurchased()){

 if(time <= 60) 
     { 
     ticket = 25; 
     } 
     else 
     { 
     ticket = 25 + (10 * (time/60)); 
     } 
     return ticket; 
    }