メソッドの設定方法についての課題

このQ&Aのポイント
  • メソッドbkの設定方法について,簡単に説明します。
  • メソッドgetX, getY, getAngleの設定について,簡単に説明します。
  • メソッドup,downの設定について,簡単に説明します。
回答を見る
  • ベストアンサー

【至急】メソッドの設定方法についての課題

メソッドの設定についての課題が出ています。 1:メソッドbkの設定方法について,簡単に説明しなさい /** n だけ後ろに進む。 */ public void bk(int n) { fd(-n); } 2:メソッドgetX, getY, getAngleの設定について,簡単に説明しなさい /** 現在の座標の X 成分を返す。 */ public int getX() { return (int)this.x; } /** 現在の座標の Y 成分を返す。*/ public int getY() { return (int)this.y; } /** 現在の角度を返す。*/ public int getAngle() { return (int)(this.angle * 180.0 /Math.PI); } 3:メソッドup,downの設定について,簡単に説明しなさい /** ペンをあげる。 */ public void up() { penDown = false; } /** ペンをおろす。ペンをおろした状態で進むと、その軌跡が画面に残る。*/ public void down() { penDown = true; } 問題文以外のプログラムは、該当箇所と判断した箇所のみを抜粋して掲載しました。 そこで質問なのですが、全ての設問とも、簡単に説明しなさいとのことですが、 そのまま、/** */ の中に簡単な説明が書かれてるじゃん・・・という感じでどの様に説明すればいいのか、中々答えがまとまりません。 丸投げの様な形になってしまい申し訳ございませんが、どなたかお助け下さい。

  • Java
  • 回答数2
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.2

 そうですね。親切なコメントが付いてます。  コメントを回答欄に丸投げしても、まぁ、0点ではないでしょう。  では、例えば、3番の問題で、コメントの内容をそのまま回答欄に書きましょう。  upは、ペンをあげるんですね。upメソッドを実行すると、あなたの持っている、現実世界のペンが上に飛んでいくと(笑)冗談ですよ。  プログラムの説明になっていないですよね。抜粋された以外にどの程度のプログラムが書いてあるかは解りませんが、それでも、いま抜粋された部分だけでも、たくさんの事が書けます。  最低でも、このドローイングクラスには、現在のペンの状態を表すpenDownという整数型に属するプロパティーか、論理型のプロパティーが存在するはずです。多分、このメソッドがあると言うことは、private宣言されているか、protect宣言されているはずです。  up・downメソッドは、このpenDownプロパティーの値を設定するためにあります。  多分、drawか、moveと言ったようなカーソルを移動するためのメソッドが存在し、このメソッドはpenDownの状態を参照して、ラインを引くか、何も書かずにカーソルだけを移動するかを決定しているはずです。  こんな事を書くだけで、ほら、なんか解答らしくなってきませんか?

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

/** */ の動作を、どんな手段で実現しているかを聞いているのではないでしょうか? /** n だけ後ろに進む。 */ public void bk(int n) { fd(-n); } だったら、この fd(-n) が、どういう理屈で 「n だけ後ろに進む」になるのか、とか

tukkyun
質問者

補足

ということは、 /** n だけ後ろに進む。 */ public void bk(int n) { fd(-n); } このプログラムだけで判断するのではなく、全体のプログラムを見て何故 -n でnだけ後ろに進むのか、ということを説明する、ということでしょうか?

関連するQ&A

  • classを使って座標軸を求めるコード

    やさしい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;までの部分 の順番を変えてもいいですか?

    • ベストアンサー
    • Java
  • MouseEventおよびMouseListenerについて、、

    JAVAの初心者です。。 ただいまMouseEventおよびMouseListenerをもちいて、 とある画像でMouseを用いた距離の測定を行うプログラムを作成中なのですが、、 public void run(){ addMouseListener(this) } public void mouseClicked(MouseEvent e){} public void mousePressed(MouseEvent e){ int x1 = e.getX(); int y1 = e.getY(); } public void mouseReleased(MouseEvent e){ int x2 = e.getX(); int y2 = e.getY(); Line = Math.sqrt((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1)); } public void mouseEntered(MouseEvent e){] public void mouseExites(MouseEvent e){} プログラムとしてはプレスとリリースで直線距離を測定し、 その後、その距離を用いて他の計算を行うものなのですが、 mouseReleased時にgetX()メソッドをもちいて測定した距離(変数Line)を他のクラスに継承させたいのですがうまくいかないのです。 mouseReleasedメソッドにSystem.out.println(Line)を加えると確かに期待通りの値が出るのですが、 return Line;ではMouseEventメソッドにvoidをつけなければならないために不具合が生じてしまいます。 この変数Lineを他のクラスで使用する場合どのようにすればよいでしょうか、ご指導おねがいします。 また、もう一つの問題点として、このMouseEventを一度起動させると何度マウスを動かしても何度も処理をおこなってしまいます。このMouseEventの終了(可能ならばmouseReleased時に終了)させるためにはどのようなメソッドを加える必要があるでしょうか?? あわせてご教授願います。。

    • ベストアンサー
    • Java
  • C++のプログラムが走りません。

    <<条件は以下です。>> データメンバ x:xの座標(ただし 0-1000とする) y:yの座標(ただし 0-1000とする) z:zの座標(ただし 0-1000とする) メンバ関数 void setX(int a): xの座標を設計する(範囲外の値は、error messageを出力する) void setY(int b): Yの座標を設計する(範囲外の値は、error messageを出力する) void setZ(int c) Zの座標を設計する(範囲外の値は、error messageを出力する) int getX(): Xの座標値を得る int getY(): Yの座標値を得る int getZ(): Zの座標値を得る << 不明な点は、 if文で、どう戻るかがわからないことと、 最後の結果表示の部分です。 以下が、作成したプログラムです。ネットで検索して類似しているプログラムを参考にしたんですが。 よろしくお願いします。>> #include <iostream> using namespace std; class Zahyou{ private: int getX();//Xの座標値を得る int getY();//Yの座標値を得る int getZ();//Zの座標値を得る int a,b,c; public: void setX(int a);//Xの座標を設計する void setY(int b);//Yの座標を設計する void setZ(int c);//Zの座標を設計する void show(); }; void Zahyou::show(){ cout << "The result is: (" << a << "," << b << "," << c << ")"; } void Zahyou::setX(int a){ cout << " Please Input X " << "\n "; cin >> a ; if(a < 0 && a > 1000){ cout << "The value of X is a mistake, Please input X again! " << " \n "; } } void Zahyou::setY(int b){ cout << "Please Input Y " << "\n "; cin >> b ; if(b < 0 && b > 1000){ cout << "The value of y is a mistake, Please input X again! " << " \n "; cin >> b ; } } void Zahyou::setZ(int c){ cout << " Please Input Z " << "\n "; cin >> c ; if(c < 0 && c > 1000){ cout << "The value of Z is a mistake, Please input X again! " << " \n "; cin >> c ; } } int main(){ Zahyou zahyou1; zahyou1.getX(); zahyou1.getY(); zahyou1.getZ(); zahyou1.show(); return 0; }

  • メソッド

    public class Point{ public int x; public int y; public void swap(int s){ int x = s * y; y = s * x; this.x = x; } public void swap2(int s){ int x = s * y; y = s * this.x; this.x = x; } public static void main(String[] args){ Point pt = new Point(); pt.x = 3; pt.y = 4; pt.swap(2); System.out.println(pt.x + " " + pt.y); pt.swap2(3); System.out.println(pt.x + " " + pt.y); } } このプログラムでswapメソッドとswap2メソッドってどう違うんですか?

    • ベストアンサー
    • Java
  • 内部クラスにする方法教えてください!

    import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Line extends JPanel { int x0, y0, x1, y1; public static class WindowCloser extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } public static class ClickTracker extends MouseAdapter { private Line line; public ClickTracker(Line enclosing) { line = enclosing; } public void mouseClicked(MouseEvent e) { line.x0 = line.x1; line.y0 = line.y1; line.x1 = e.getX(); // MouseEventクラスのgetXメソッドでマウスのx座標値を取得 line.y1 = e.getY(); // MouseEventクラスのgetYメソッドでマウスのx座標値を取得 line.repaint(); // ウィンドウの表示を再描画 } } public Line() { x0 = y0 = x1 = y1 = 0; addMouseListener(new ClickTracker(this)); JFrame frame = new JFrame(); frame.addWindowListener(new WindowCloser()); frame.getContentPane().add(this); frame.setSize(300,300); frame.setVisible(true); } public void paintComponent(Graphics g) { super.paintComponent(g); g.drawLine(x0, y0, x1, y1); } public static void main(String[] args) { Line c = new Line(); } } 上のプログラムのClickTrackerクラスを内部クラスに書き換えたいんですけどどなたか教えてください!

    • ベストアンサー
    • Java
  • クラスメソッドの仕様

    次のようなクラスメソッドを作りたいのですが、自分で作って見たところ、どのような点を修正すればいいか分かりません。 どうか教えてください。 (1) 次に示す内容を満たすバー(Bar)クラスを作成せよ。 1. バーの右端のx座標(=バーの長さ)、バーの名前を扱う2つのprivateなインスタンス変数を持つ。 2. バーの総数を扱うprivateなクラス変数を持つ。ただし、 ここでいう総数とは、(1)コンストラクタで作成したもの、(2)代入操作で作成したもの、の両方を含む。 3. 引数無しのコンストラクタが呼び出されてバーオブジェクトが作成されると、そのバーのx座標は0以上400未満でランダムに決定され、名前は文字「A」とランダムに決定された0以上10000未満の整数が連接されたものに決定される。 4. バーのx座標を設定するインスタンスメソッドを持つ。 5. バーの名前を設定するインスタンスメソッドを持つ。 6. バーのx座標を取得するインスタンスメソッドを持つ。 7. バーの名前を取得するインスタンスメソッドを持つ。 8. 作成されたバーの総数を取得するクラスメソッドを持つ。 9. 作成されたバーの総数を1増やすクラスメソッドを持つ。 10. 作成されたバーの総数を1減らすクラスメソッドを持つ。 これを自分なりに解釈したところ、 class Bar{ private int x; private String name; private int count; private Bar(){ x=0; count=0; name=""; } public void Bar(){ x = (int)(Math.random()*400); name = "A" + (int)(Math.random()*10000); } public void setBar(int bx){ x=bx; } public void setName(String nm){ name=nm; } public void getX(int bx){ } public void getName(String nm){ } public void getCount(int c){ } } どうか御教授お願いします。

  • MouseEventを使った時間計測について

    これまでJavaは使ったことないのですが、卒研で使うことになり今必死になってやっております。 早速ですが、今drawLineメソッドとMouseEventを使って自由曲線を描くものを作ってみました。 これに、mousePressed時に時間計測を開始し、mouseReleased時に一旦停止。 そして、それを足し合わせて合計時間を出したいのですが調べてもよくわかりません。よろしくお願いします。 下記は、現段階ものです。 ・J2SDK1.4.2.15 class DrawPanel extends Panel implements MouseListener,MouseMotionListener { Vector shapes = new Vector(); int x1,y1; public DrawPanel() { setForeground(Color.black); setBackground(Color.white); addMouseMotionListener(this); addMouseListener(this); } public void mousePressed(MouseEvent e) { e.consume(); x1 = e.getX(); y1 = e.getY(); shapes.addElement(new Rectangle(x1,y1,x1,y1)); paint(getGraphics()); } public void mouseDragged(MouseEvent e) { e.consume(); shapes.addElement(new Rectangle(x1,y1,e.getX(),e.getY())); x1 = e.getX(); y1 = e.getY(); paint(getGraphics()); } public void paint(Graphics g) { int number = shapes.size(); for (int i = 0;i < number;i++) { Rectangle data = (Rectangle)shapes.elementAt(i); g.drawLine(data.x,data.y,data.width,data.height); } } }

    • ベストアンサー
    • Java
  • クラスメソッドのみのクラスのオブジェクト生成は不可??

    あるテキストのjavaの問題です。 public class Draw{   static void pixel(int x,int y){     /*座標(x、y)に点を描画*/   }   static void line(int x1,int y1,int x2,int y2){     /*座標(x1、y1)~(x2、y2)に線を引く*/   } } で、これを実行するための以下のようなクラス public class TestDraw{ <ここに入力> } という問題なのですが2つまでは絞れたのですが、 (1) public static void main(String args[]){   Draw d = new Draw().line(10,10,20,30); } ↑× (2) public static void main(String args[]){   Draw.line(10,10,20,30); } ↑○ (2)はlineメソッドがstaticメソッドだからオブジェクト生成しなくても良い、ということなんですが (1)も正解のような気がするのですが・・・ 解説によると「lineはvoidなのでnew Draw().line(10,10,20,30);とすれば正解、とあります。 どうもいまいち理解できません。 クラスメソッドはオブジェクト生成しなくとも良い→オブジェクト生成できない ということなのでしょうか? それからちなみに、public classって2つ記述できないんではありませんでしたか?

    • ベストアンサー
    • Java
  • オブジェクト指向のエラーについてです。

    オブジェクト指向のエラーについてです。 初めて質問するので、至らない点があれば、スミマセンm(_ _)m コンパイルしようすると、 DrawPanelMouseHandler.java:10: シンボルを見つけられません。 シンボル: クラス DrawPanel 場所 : DrawPanelMouseHandler の クラス private DrawPanel drawPanel; と、なります。 上記と同様のエラーが上記を含め、9つ発生します。 どうしたらよいのでしょうか? 以下ソースです。 import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class DrawPanelMouseHandler extends MouseAdapter { private DrawPanel drawPanel; private ShapeFactory factory; private int x0; private int y0; private Shape shape; public DrawPanelMouseHandler(DrawPanel dp, ShapeFactory factory) { this.drawPanel = dp; this.factory = factory; } public DrawPanelMouseHandler(DrawPanel dp) { this.drawPanel = dp; } public void mousePressed(MouseEvent me) { x0 = me.getX(); y0 = me.getY(); shape = factory.newShape(x0, y0); drawPanel.addShape(shape); } public void mouseDragged(MouseEvent me) { int x = me.getX(); int y = me.getY(); shape.setBoundary(x0, y0, x, y); drawPanel.repaint(); } public void mouseReleased(MouseEvent me) { int x = me.getX(); int y = me.getY(); shape.setBoundary(x0, y0, x, y); drawPanel.removeShape(shape); Command cmd = new CommandAddShape(drawPanel, shape); drawPanel.execute(cmd); } public void setShapeFactory(ShapeFactory sf) { this.factory = sf; } } よろしくお願いします。

    • ベストアンサー
    • Java
  • 初歩的なことなのですが(メソッドについて)

    こんにちわ。 最近、javaの勉強を始めました。 今、掛け算を求めるメソッドと、そのメソッド結果を表示するためのメソッドをつくっています。 掛け算を求める方は class Rensyu { public int Kakezan (int atai1,int atai2,int atai3) { int seki = atai1 * atai2 * atai3; return seki;          } と作ったのですが、 この後ろに      public void Show(){ System.out.println(); } という形でKakezanメソッドの値を出力するメソッドを加えたいのですが、書き方がわかりません。説明がわかりづらいと思いますが、よろしければ、回答(ソースの書き方)をお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう