質問: "Java"; System.out.println(obj1.lang + "\t" + obj1.oparation); System.out.println(obj2.lang + "\t" + obj2.oparation); } <実行結果> Java Unix Java Solaris
回答: Mainの最初の3行の動きを理解すれば判るかと思います。 ``` Test obj1 = new Test(); ``` これで, obj1に、operation が "Unix"となっているTestクラスのオブジェクトが入ります。 ``` Test obj2 = new Test("Solaris"); ``` 引数に"Solaris"と指定したコンストラクタが使われていますから、 obj2に、operation が "Solaris"となっているTestクラスのオブジェクトが入ります。 ``` obj2.lang = "Java"; ``` langは、TestクラスのStaticなメンバーです。Staticということは、Testクラスの全て(obj1もobj2も)のオブジェクトが同じ値を持つということです。 obj2.lang = "Java"; とすることで、obj1.langnの値も"Java"になります。