[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] Re:初めまして
前橋です。
はる さん:
>> いや、実は、x, y が宣言されてないとか?
>
>すいません今なおしました。
直しても、コンパイルを通らなかったわけですね。
>//マウス感知による2点間描画
>import java.applet.Applet;
>import java.awt.*;
>import java.awt.event.*;
>public class dLinem extends Applet
> implements MouseListener,MouseMotionListener{
> int clka,clkb,clkbX,clkbY;
> int clcnt,id = 2,npg = 1,x=0,y=0;
> int doX,doY;
> Point p;
> p = new Point(x,y);
> Button buttona;
> TextField texta, textb, textc, textd, texte;
>
> public void init(){ //ロード時の初期化メソッド
> addMouseListener(this);
> addMouseMotionListener(this);
えっと、
> Point p;
> p = new Point(x,y);
この手のことは、コンストラクタ等、メソッドの中でやるのが私の
スタイルなんですが、確か、Javaの場合、文法上、インスタンス変
数を宣言と同時にnewしておくのは許してたはず...
今、文法をチェックしたら、インスタンス変数の初期化子で、他の
インスタンス変数を参照している場合、やっぱり評価順序はソース
テキスト上の順序に依存してしまうのですね...
でも、さすがに、ただの代入文をメソッドの外に書くのはまずいでしょう。
Point p = new Point(x, y);
とするか、
フィールド宣言の方では、
Point p;
だけにしといて、init()の中で、
p = new Point(x, y);
とすればよいのでは。
# 後者の方が私の好みです。
...うーん、ひょっとして、x, yの宣言は実は不要で、
p = new Point(0, 0);
で良かったりしませんか?
# いかん、いかん、仕事、仕事。
------------------------------------------------------------
前橋 和弥 maebashi@xxxxxxxxxx
中部ソフトエンジニアリング(株)
〒450 名古屋市中村区名駅4-10-25(名駅IMAIビル 5F)
Tel:(052)583-4511(代) 内線 252 Fax:(052)583-4566
------------------------------------------------------------