2014-11-20 64 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; 
} 
相关问题