やさしいJavaからの問題です。
次のように、整数値の座標をあらわす MyPoint クラスを作成してください。
フィールド
private int x; (X座標)
private int y; (Y座標)
メソッド
public void setX(int px); (X座標を設定する)
public void setY(int py); (Y座標を設定する)
public int getX(); (X座標を得る)
public int setY(); (Y座標を得る)
という問題で、回答は以下の通りですが、
class MyPoint
{
int x;
int y;
void setX(int px)
{
x = px;
}
void setY(int py)
{
y = py;
}
int getX()
{
return x;
}
int getY()
{
return y;
}
}
class Sample5
{
public static void main(String[] args)
{
MyPoint p1;
p1 = new MyPoint();
p1.setX(10);
p1.setY(5);
int px = p1.getX();
int py = p1.getY();
System.out.println("p1のX座標は" + px + "Y座標は" + py + "でした。");
}
}
教科書の関連の章ではreturnが先に来ているのですが、突然この問題ではvoidから始まっているのですが、int getX()~return y;までとvoid setX~y = py;までの部分
の順番を変えてもいいですか?
No.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】はそれぞれ別々のメソッド。
コーディングする順序はどれが先でどれが後でもかまわない。
これらのメソッド定義がどの順序で並んでいるかは実行にはまったく関係なく,他のメソッドがこれらのメソッドをどの順で呼び出しているかによって実行順序が決まる。
No.1
- 回答日時:
すみません。
おっしゃっている意味がよくわからないのですが。各メソッドは
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が後に来ているのでなぜかなあと思いまして。
補足日時:2013/08/03 13:53お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# プログラミングペーパーテスト 次の問題の実行結果を答えろ #include int x[ ] = { 1 2022/06/16 21:49
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
(Swing)JTextFieldを半角のみ入...
-
6桁の数字を重複なしでランダム...
-
JAVAでCの関数ポインタのような...
-
初心者です。JScrollPane につ...
-
三目並べ(Tick-Tack-Toe)をJav...
-
初心者ですが、今javaで簡単な...
-
Javaで電卓を作りたい
-
消費税を計算
-
c# デリゲート関連の命名について
-
C#で実行時にメソッドの返り値...
-
javaでカレンダー作成
-
式の型は配列型で int に解決済...
-
String変数から数字以外を排除する
-
行の途中から読み込む方法
-
C++初心者です
-
javaのRandomで『a~z』までの...
-
JUnit4のアノテーションについて
-
java streamでenum配列への変換
-
if文とオブジェクト指向につい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
式の型は配列型で int に解決済...
-
「配列定数は、イニシャライザ...
-
intが負の時に投げる例外はあり...
-
javaでカレンダー作成
-
メインが含まれていません
-
JAVA エラー 式の開始が不正で...
-
Javaで電卓を作りたい
-
javaでcsvファイル読込時の改行...
-
(Swing)JTextFieldを半角のみ入...
-
javaのエラーの意味がわかりま...
-
「WorkImage.getGraphics()」が...
-
初心者ですが、今javaで簡単な...
-
sin曲線とcos曲線を描くプログ...
-
java spring でエラーが出て困...
-
SwingでJtableのヘッダ行が表示...
-
Java 初心者 int型の取り扱い方
-
DataSet(DataTable)の使い方
-
JAVAでCの関数ポインタのような...
-
6桁の数字を重複なしでランダム...
-
JAVA EOFの検出 (条件文で「...
おすすめ情報