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

[jfriends] Re: staticの使い方





[From] "kodutumi" <kodutumi@xxxxxxxxxx>
[Date] Fri, 23 Apr 1999 16:16:26 +0900
[Sub] [jfriends] staticの使い方
[MsgID] <050701be8d59$374f4420$4b01a8c0@xxxxxxxxxx>
> というのは、昨日上司から
> 「プロジェクトのパーツを作るときパブリックなものは変数もメソッドもスタティッ
> クで書くように」
> と言われたのです。
> 私はほとんどインスタンスを生成して使っているので、何か気持ち悪く
> その設計はまずいんじゃないかと思うのですが、まずい理由が説明できません。
> 皆様はどう思いますか?できたら以下の趣旨でお聞かせください。

変数を staticにすると、その変数が含まれたクラスの
インスタンスを幾つ作っても変数の実体はひとつですよ
ね? たとえば、

class Point { // 座標X,Yを表す
    public static int x, y;
    Point(int x, int y) { this.x = x; this.y = y; }
    public int getX() { return this.x;}
    public int getY() { return this.y;}
}

import Point;
class View {
    public static void main(String[] args) {
        Point p1 = new Point(1,1);
        Point p2 = new Point(2,2);
        System.out.println("p1.x ="+p1.getX());
        System.out.println("p1.y ="+p1.getY());
        System.out.println("p2.x ="+p2.getX());
        System.out.println("p2.y ="+p2.getY());
    }
}

↑の結果は 

 p1.x =2
 p1.y =2
 p2.x =2
 p2.y =2

です。これじゃ複数の座標を扱えないので「無条件に
static化」という事なら

>2.上司は間違っている。理由はこれこれ。

僕は2です。
でも、これは明らかに変ですから、なにか
別の真意があるんじゃないですか? 


----------
 無津呂晃 / MUTSURO Akira.