2017-06-24 16 views
3

我製作了一個名爲'Car'的類,並且我有這個代碼。 Car c=new Car(), yourCar; 我不知道'yourCar'是什麼意思 與Car myCar = new Car(); Car yourCar = new Car(); 是一樣的嗎? 逗號後我無法理解。在java中同時製作兩個對象

package ex2_datatypecasting02; 


class Car{ 
    String name = "car"; 
    String print() { 
    return name; 
    } 
} 
class Bus extends Car{ 
    String name = "bus"; 
    String print() { 
    return name; 
    } 
} 
public class CastingExam { 
public static void main(String[] args) { 
    Car myCar = new Car(),yourCar; 
    Bus myBus = new Bus(),yourBus; 
    System.out.println(myCar.print()); 
    System.out.println(myBus.print()); 
    yourCar = myBus; 
    yourBus = (Bus)yourCar; 
    System.out.println(yourBus.print()); 
    } 
} 
+0

這不應該編譯。你從哪裏得到這些代碼? –

+2

@ E_net4:這應該編譯。它只是稍後聲明額外的變量。 –

+1

哎喲,你說得對。我已經避免了多個聲明的這種語法來忘記它們。 –

回答

4

可以通過將它們用逗號(,)分離聲明多個變量在一行上相同類型。像:

//declare three integers 
int x, y, z; 

這相當於:

int x; // declare x 
int y; // declare y 
int z; // declare z 

所以在這裏我有宣佈三個整數,但我有未初始化它們。您也可以初始化一個或更多的人,如:

//declare three integers, initialize two of them 
int x = 1, y, z = 4; 
//^  ^initialized 

到這相當於:

int x = 1; // declare and initialize x 
int y;  // declare y 
int z = 4; // declare and initialize z 

在這裏,我們已經宣佈變量,並初始化xz分別14

所以語句聲明瞭兩個Car變量:cyourCar,並c初始化爲新車,yourCar

2

正如威廉很好的解釋,這種說法:

Car myCar = new Car(),yourCar; 

是有效的,並允許聲明兩個變量Car但只有初始化其中的一個:myCar
yourCar確實是null這裏。

我想補充一點,這種做法可以讓您省卻一條線,但卻非常容易出錯。
爲了讓您的代碼的可讀性更好,你應該宣佈在不同線上的每個變量:

Car myCar = new Car(); 
Car yourCar; 

它產生相同的結果,但它是非常清晰的。