- PR -

javaの問題

1
投稿者投稿内容
未記入
会議室デビュー日: 2007/09/06
投稿数: 1
投稿日時: 2007-09-06 05:36
こんにちは。
javaの勉強をしているのですが、問題が解けません。
皆さんの力をお貸しいただけないでしょうか。

問題内容です。
以下のクラス図で示したRectangleクラスを作成し、実行結果と同じに
なるようにメソッドを作成する。
クラス図
Rectangle
-width:ing
-height:int
-----------
Rectangle()
Rectangle(w:int,h:int)
getArea():int
-------------
問題文
getArea()メソッドでは面積の計算をする(高さ×幅)
コンストラクタRectangle()ではwidthとheightに初期値0を設定。
main()メソッドでは標準入力より幅、高さを整数として受け取り
コンストラクタの引数とする。
実行結果
>10
>20
インスタンスr1の面積は200
インスタンスr1は1番目のインスタンス
>123
>45
インスタンスr2の面積は5535
インスタンスr2は2番目のインスタンス
----------------------------------------
上記の内容は前回の課題(すでに終えている)
この問題に改良を加え
getArea()メソッドをクラスメソッドに書き換える。
クラスメソッドとして書いたgetAreaでは引数でインスタンスを渡してもらい
オブジェクト名.フィールド名として使う

現在の進行状況です
import java.io.*;

class Rectangle{
public static int count = 0;

private int width;
private int height;

public Rectangle(){
width=0;
height=0;
count++;
}
public Rectangle(int w, int h){
width=w;
height=h;
count++;
}
public static void getArea(){

}
public static void count(){
System.out.println("インスタンスはr" + count + "番目のインスタンスです。");

}
}

class Ex56{
public static void main(String args[])throws IOException{
BufferedReader br = new BufferedReader
(new InputStreamReader(System.in));
int num=0;
while(num < 2){
System.out.print(">");
String wid = br.readLine();
System.out.print(">");
String hei = br.readLine();
int num1 = Integer.parseInt(wid);
int num2 = Integer.parseInt(hei);
Rectangle rectangle1 = new Rectangle(num1, num2);
Rectangle.rectangle1(num1, num2);
Rectangle.count();
num++;
}
}
}
分からない部分ですが、
@getAreaでは引数でインスタンスを渡してもらい
オブジェクト名.フィールド名として使う
A渡した値をどの場所でどう表示すべきか
BどのようにgetAreaへ値をわたしたらよいか
と言ったところが現在の疑問点です。
どなたかよろしくおねがいします。
ふーばー
大ベテラン
会議室デビュー日: 2003/06/05
投稿数: 163
投稿日時: 2007-09-06 08:28
問題文をまだよく理解していないようですね。
getArea() メソッドに引数を用意するよう指定されています。
引数として渡されたRectangleインスタンスを・・・。
頑張ってください。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-09-06 11:28
インスタンスメソッドとstaticメソッドと書き換えの問題になるのかな。
このあたり、オブジェクト指向を理解するための壁かもしれませんね。

以下に簡単なサンプルを書いておきます。
インスタンスメソッドとstataicメソッドの書き換えの例です。
こういった小さなサンプルを書いていじり倒して実際の挙動と
自分の思った挙動が一致するように訓練して見てください。

コード:
public class Hoge {
    public void hoge1() {
        System.out.println(this);
    }

    public static void hoge2(Hoge hoge) {
        System.out.println(hoge);
    }
}

小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2007-09-06 21:38
もしかして、久々の実習問題そのまま投稿系のスレッドですかね?
辛抱たまらず模範解答を書いてしまう方が出てこない
ことを願います、投稿者のためにも。
もう一度問題文をよく読んでみましょう。
※もうヒントは出てるから十分かと
1

スキルアップ/キャリアアップ(JOB@IT)