質問: y; } ``` ``` public class Line implements Figure { private Point p1; private Point p2; public Line() { this.p1=new Point(); this.p2=new Point(); } ```
回答: > > newするときは「クラス名 変数名 = new クラス名(); 」ではないのですか? > > > newするだけであれば、 new クラス名(); だけでよいです。大抵意味がないですが・・・ > > クラス名 変数名 = new クラス名(); > > > というのは3つのことをしています。 1. 変数名を新しく宣言している 2. 新しくインスタンスを生成している(いあゆるnewしている) 3. 生成したインスタンスを変数名へ代入している > > this.p1=new Point(); > > > は、上記のインスタンスの生成と代入のみをしています。 ちなみに、宣言と代入を別に行うのはフィールドに限らずメソッドの中の実装とかでもよくやります。 ``` Point p = null; p = new Point(0, 0); ``` みたいなコードです。 今回は、p1がフィールドにあるので、this.p1を指定しています。 ちなみに、生成するインスタンスと変数の型は必ずしも同じ必要はなく ``` String s = new クラス名().toString(); // String と クラス名(クラス)自体は異なる ``` のような書き方もできます。