2010-09-20 71 views
1

下面是代碼,缺少返回語句錯誤,我不知道有什麼錯誤

class Car 
{ 
    public static String owner; 
    public static String car; 
    public static Integer plate_num; 
    public static String car_color; 

    Car(String owner, String car_name, Integer num, String color) 
    { 
     owner = owner; 
     car = car_name; 
     plate_num = num; 
     car_color = color; 
    } 

    Void display() 
    { 
     System.out.println("The owner of the car is "+ owner + "and Car model is " + car); 

     System.out.println("The car number is "+ plate_num + "and Car color is " + car_color); 
    } // ---> here is the error 

    public static void main (String args[]) 
    { 
     Car car1 = new Car("MAriam", "Mini Cooper", 124834, "Navey"); 

     car1.display() ; 

     //System.out.println("Y3es"); 
    } 
} 
+0

開始使用IDE的正確時間。 netbeans/eclipse – GoodSp33d 2010-09-20 08:18:20

回答

10

這裏有一個Void回報。 Void實際上是一個類。

要解決您的問題,您必須用小寫字母將其更改爲void


資源:

2

科林指出,最直接的問題,與返回類型。但是,您的代碼也有其他問題。

特別是,你的變量是static - 所以,如果你創造了許多Car情況,並要求他們每個人的事後展示自己,他們會全部顯示最後構造函數調用的名稱等。

在變量聲明中不應該有static修飾符。爲了封裝的目的,你也應該讓它們變成私有的。

而且,這條線是一個無操作 - 在一個良好的IDE,應該向你們表示警告:

owner = owner; 

這只是分配參數的值回發到自身。當您移除領域的static修改,語句可以改爲:

this.owner = owner; 

注意,其他分配不具備同樣的問題的唯一原因是,他們使用的都是不同的名字爲領域的參數...雖然不一致。 (有時域前綴car_,有時參數。)

科林在評論中指出,使用默認的「包」的訪問可能不是你想要的類,構造函數和方法display ..但如果沒有更多的上下文,這很難說。

+0

還有更多的東西,比如classe/fields/methods的可見性(全部是包裝?真的?),還是因爲'owner = owner'在構造函數中不起作用的所有者。 – 2010-09-20 06:36:50

+0

@Colin:很難知道軟件包的可見性是否確實存在問題,但是這個任務肯定是:)將被編輯。 – 2010-09-20 06:41:31

+0

優秀的指針。喬恩,除了回答關於SO的問題之外,你是否真的在工作? ( - ;我想將命名約定添加到gripes列表中:car_color應該重命名爲carColor,或者更好的顏色(它已經是Car的一個字段,因此不需要前綴)。另請參閱http:// www.oracle.com/technetwork/java/codeconv-138413.html(Sun err .. Oracle代碼約定)。是否OP有C背景? – 2010-09-20 07:31:42