- ベストアンサー
classを使って座標軸を求めるコード
- やさしいJavaからの問題です。次のように、整数値の座標をあらわす MyPoint クラスを作成してください。
- メソッドの順番を変えてもいいですか?
- 教科書の関連の章ではreturnが先に来ているのですが、突然この問題ではvoidから始まっているのですが、int getX()~return y;までとvoid setX~y = py;までの部分の順番を変えてもいいですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
【M】class MyPoint{…内部の19行分省略…} 【S】class Sample5{…内部の12行分省略…} 上記の【M】と【S】は別のクラス。 コーディングする順序はどちらが先でどちらが後でもかまわない。 このプログラムの実行はどちらが先にコーディングされていようとも,public static void main()メソッドが定義されている【S】クラスのmain()メソッドから開始することになる。 -------- class MyPoint { int x; int y; 【A】void setX(int px){x = px;} 【B】void setY(int py){y = py;} 【C】int getX(){return x;} 【D】int getY(){return y;} } 上記の【A】【B】【C】【D】はそれぞれ別々のメソッド。 コーディングする順序はどれが先でどれが後でもかまわない。 これらのメソッド定義がどの順序で並んでいるかは実行にはまったく関係なく,他のメソッドがこれらのメソッドをどの順で呼び出しているかによって実行順序が決まる。
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
すみません。おっしゃっている意味がよくわからないのですが。 各メソッドは void setX(int px){x = px;} でsetX void setY(int py){y = py;} でsetY int getX(){return x;} でgetX int getY(){return y;} でgetYの定義になります。閉じ括弧までがセットです。 「return y;まで」では、メソッドの途中になります。通常は、そんなところを入れかえたら、元のプログラムと意味が変ってきます。 今回はたまたま変化しない例となりますが。 メソッドの定義の固まりを分解しないのなら、順番は変更可能です。 例えば // X関係。getter,setter int getX(){return x;} void setX(int px){x = px;} // Y関係。getter,setter int getY(){return y;} void setY(int py){y = py;} のように。 この順番を変えることと、「関連の章ではreturnが先に来ている」「voidから始まっている」との関連がわかりません。 一般には、関係のあるものを近くにまとめるのが、作法です。 上はX,Yに注目して集めてますし、例示されたものは、 set? と get? とで集めています returnやvoidで順番を決める、ということは、まずやりません。
お礼
回答またお願いします。
補足
やさしいJavaを読んだことのない人からしたら唐突だったかもしれません。同じ章の前のページを見てみると、returnの箇所が先に来てて、voidの箇所が後に書いてあったのに何故この練習問題はvoidが先に来てて、returnが後に来ているのでなぜかなあと思いまして。
補足
呼び出し順がすべてなんですね。回答有難うございます。