2017-06-24 19 views
3

私は「Car」という名前のクラスを作成しましたが、私はこのコードを持っています。 Car c=new Car(), yourCar; 「あなたの車」が意味するものはわかりません はCar myCar = new Car(); Car yourCar = new Car(); と同じですか? コンマの後にわかりません。Javaで同時に2つのオブジェクトを作成する

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

あなたはカンマ(,)で区切ることにより、1行に同じタイプの複数の変数を宣言することができます。同様に:と同等です

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

:だからここ

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

は私が宣言三つの整数がありますが、私はそれら初期化されていません。我々はの変数を宣言し、それぞれ14xzを初期化している

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

:に相当する

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

:あなたはまた、同様に、それらの一つ以上を初期化することができます。

だから、文は2つのCarの変数を宣言:cyourCarを、そしてcyourCarではない、新しい車で初期化されます。

2

ウィレムはうまく説明したように、この文:

Car myCar = new Car(),yourCar; 

は有効であり、2つのCar変数を宣言することができますが、それらの一方のみを初期化します:myCar
yourCarは実際にはnullです。

私はこの方法であなたの回線をスペアしているが、実際にはエラーが発生しやすいと付け加えたいと思います。あなたのコードの読みやすさを得るために
、あなたは別々の行に各変数を宣言する必要があります。

Car myCar = new Car(); 
Car yourCar; 

それは同じ結果を生成しますが、それは非常に明確です。

関連する問題