[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: staticの使い方(メソッド)





こんばんは。
西沢@xxxxxxxxxxイーサー・プラニックです。

#実はSmalltalkerだったりしてます。。。

Kazuya Maebashi <maebashi@xxxxxxxxxx> wrote:
at [Thu, 29 Apr 1999 17:15:19 +0900]
> X上のMuleで1画面に収まらないのは、メソッドでなくてクラスです。
> その中のメソッドで、同じインスタンス変数が参照できて、相互に
> 副作用があると、グローバル変数と一緒で、見通しが悪くなるとい
> うことを書いています。1メソッドが1画面に収まらないのは、論外
> ですよね。

極端な話ですが、1つのメソッド内で2つ以上の処理はさせないのがベストと
言う人もいますから、画面内に収まらないのはそれこそ、、、ですね。(^^;)

#どのレベルまでを1つの処理とするのかは人それぞれでしょうけど。

でも、私の気持ちとしてはクラスでも同様なんですよね。
継承している場合、スーパークラス(そのまたスーパークラスも)を含めて
全部が関係してきますから。


> 雰囲気的には、
> 
>   sin(5)
> 
> ではなくて、
> 
>   5.sin()
> 
> と書くというイメージですね。

そうです。
5も数字クラスのインスタンスで状態が 5 と考えると、そこでsinを
求める時に引数はいらなくて良いんじゃないかと思ったわけです。

#計算の適用範囲は数字クラスだけが持てば良いという発想です。

ちなみにSmalltalkでは、まさにそう記述します。

a := 5 sin.

Smalltalkではプリミティブは存在せず、全部オブジェクトとして扱って
いるからなせる業ですけど。。。


> # Javaの場合プリミティブはオブジェクトではないのでこういう書
> # き方はできませんが。

そうなんですよね。
逆に、ラッパークラス同士で計算する場合に + が使えないのも、ちょっと
不便だったりして。

ちなみにSmalltalkでは + もメソッドなんです。
だから 1 + 2 は 1 のオブジェクトの + メソッドの引数として 2 を
渡して、+ メソッドは自分自身と引数を足してその結果を返すと。

#Smalltalkとの比較はJavaHouseでも以前、話題になってましたね。


> ## sin()の引数は実数ですが、実数に.を付けると何がなんだかわ
> ## からなくなっちゃう... 0.5.sin()、うーむ。

たしかに、Java上ではわけがわからなくなってしまいますね。



----------------------------------------
西沢 篤行 <anishi@xxxxxxxxxx>
株式会社イーサー・プラニック
Tel 03-5822-1330 / Fax 03-5822-1338