2017-09-16 7 views
-4

좋아요, 그래서 주차 티켓 시뮬레이터 인 프로그램을 만들어야했습니다. 나는 그것을 컴파일하고 대부분의 경우 작동하지만,이 작은 벙어리 오류를 제외하고는 형식 불일치가 발생합니다. 여기 자바 유형 불일치?

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; 
    } 


} 

KNW_ParkingTicketClass

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; 
     } 


     } 

그리고 오류의 말씀입니다 : 그것은 많은 코드 그래서 난 그냥 오류가있는 클래스를 줄 것입니다

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'을 반환합니다. – nbokmans

답변

0

search 메서드는 KNW_Parking_Ticket을 반환해야하지만 doubleticket을 반환해야합니다.

static KNW_ParkingTicket search(KNW_ParkedCar car, KNW_ParkingMeter meter)

가 필요한 다음 KNW_ParkingTicket 방법 double ticket;

, 당신은 여기에 매개 변수를 사용하여 전체 방법을 볼 수

1

문제는 ticket 매개 변수를 사용하여,이 방법으로 그것을 정의입니다 KNW_ParkingTicket 유형을 반환하지만 ticket이라는 double을 반환하는 경우 :

return ticket;

+0

이것이 어떻게 작동하는지 보여 주시겠습니까? 감사 드리고 싶군요! –

+1

조심성있는 모센 - 나는 여기에 [도움 뱀파이어] (https://meta.stackexchange.com/questions/19665/the-help-vampire-problem)가 있다고 생각합니다. –

+0

@KyleWelch 나는 당신을 위해 코드를 작성할 책임이 없다, 나는 그 예외가 발생한 이유 인 op 만 대답했다! –

-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; 
    }