- ベストアンサー
Javaの問題がわからない
- 幅と高さを指定するコンストラクタ内で作ったインスタンスの内容を表示する方法がわかりません。
- RectangleクラスのgetArea()メソッドでは面積を計算するため、幅と高さを乗算します。
- main()メソッドで標準入力から幅と高さを受け取り、Rectangleコンストラクタの引数に指定する方法がわかりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
package jp.ajita.main; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class MENSEKI { public static void main(String[] args) { try { Rectangle r1 = getRectangle(); Rectangle r2 = getRectangle(); System.out.println("ひとつめの長方形:"); System.out.println(r1.toString()); System.out.println("ふたつめの長方形:"); System.out.println(r2.toString()); } catch (IOException e) { System.err.println("入力でエラーが発生しました。"); System.err.println("Reason:" + e.getMessage()); } } private static Rectangle getRectangle() throws IOException { int width; int height; while (true) { System.out.print("幅を入力してください。> "); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String input = reader.readLine(); try { width = Integer.parseInt(input); if (width <= 0) { System.out.println("<0より大きい数値を入力してください。>"); continue; } break; } catch (NumberFormatException e) { System.out.println("<数値で入力してください。>"); } } while (true) { System.out.print("高さを入力してください。> "); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String input = reader.readLine(); try { height = Integer.parseInt(input); if (height <= 0) { System.out.println("<0より大きい数値を入力してください。>"); continue; } break; } catch (NumberFormatException e) { System.err.println("<数値で入力してください。>"); } } return new Rectangle(width, height); } } class Rectangle { private int width; private int height; public Rectangle() { width = 0; height = 0; } public Rectangle(int w, int h) { this.width = w; this.height = h; } public long getArea() { return width * height; } public String toString() { return new StringBuffer() .append("幅=").append(width).append("\n") .append("高さ=").append(height).append("\n") .append("面積=").append(width * height) .toString(); } }
その他の回答 (1)
- PED02744
- ベストアンサー率40% (157/390)
main(){}だけが書かれていて、「途中経過」と言われても困ります。 これでは、途中ではなく始まりです。 質問の○投げは禁止されているので、お答えはできません。 あしからずご了承ください。 ※多分、この質問自身が削除されます。 ※※javaの問題ではなくて、あなたの思考方法の問題なのです。
お礼
適切なご回答ありがとうございます。 後、211問とかなくてはいけないのでちょっとめんどくさくなりました・・・
お礼
ご回答ありがとうございます。 このプログラムを参考にオリジナルプログラムを作成していきたいと思います。 ありがとうございました^^