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

[jfriends] Re: 抽象クラス(was Re: staticの使い方(メソッド))




>似た話で、Cでいうところの#defineをJavaで書きたいとき、整数型
>ならstatic final int を使うわけですが、たいていこういうのは、
>あっちこっちで参照するので、それだけ固めたinterfaceを作ると
>いう技があります。

定数値は、それを使うメソッドと関係があるので、普通はその
メソッドも同じinterfaceに含めると思います。
そうでないと、その interface が担う責務がはっきりしないと
思います。

>使う側のクラスで、Constantsをimplementsしてしまえば、いちい
>ち Constants.HOGE のように書かなくて済みます。これはインタフェー
>スなので、単一継承に縛られる必要もありません。

implemets する意味は、その interface 型のオブジェクトとして
取り扱える、という意味があります。つまり、
 
 class HeroHero inplements Constants {

とか書いてあるとしたら、

 Constans hoehoe = new HeroHero();

という代入が成立して、Constants にあるメソッドが呼べる、
ということが保証されます。

>でも、これって、私はとっても裏技チックのような気がするのです
>けど、みなさんどうお考えでしょう?

C 的^^;

上の例だと、hoehoe.HOGE とか、hoehoe.PIYO とか使うのですか?

それとも、class HeroHero の中で単に HOGE とか PIYO と引用する
のでしょうか?

後者であればわたしはやりません。
-- 
えんどう やすゆき <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/ (Java互助会ホームページ)