2014-11-20 60 views
1

我正在學習使用類和我的任務的一部分是使這個車類。我在第6行遇到錯誤,我嘗試打印類中方法的結果。我認爲這意味着我試圖打印一些不存在的東西,我懷疑這是里程方法。我試圖改變它返回里程,但也沒有效果。有任何想法嗎?錯誤:'空'類型不允許在這裏

public class TestCar { 
    public static final void main(String args[]) { 

    Car c = new Car(); 
    c.moveForward(4); 
    System.out.println ("The car went" + c.mileage() + "miles."); // <-- L6 
    } 
} 

class Car { 
    public int miles = 2000; 
    public void moveForward(int mf) { 
    if (miles != 2000) { 
     miles += mf; 
    } 
    } 

    public void mileage() { 
    System.out.print(miles); 
    } 
} 
+0

那車不往前走) – eckes 2014-11-20 21:38:37

回答

9

錯誤消息告訴你到底發生了什麼錯誤 - 你試圖從一個不返回結果的方法中提取結果。

取而代之,有mileage()方法返回一個字符串,不打印出一個字符串。

public String mileage() { 
    return String.valueOf(miles); 
} 

我自己,我會做這個getter方法,而是會做:

public int getMiles() { 
    return miles; 
} 
+0

也大量的漏洞與存取方法,'場hiding' – 2014-11-20 21:34:49

+0

里程是好的,但它可以返回一個int。無需轉換爲字符串。 – nmore 2014-11-20 21:39:21

2

Car.mileage()是無效的,即,不返回任何東西。它需要返回的東西,像:

public int mileage() { 
    return miles; 
} 
相關問題