[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互助会ホームページ)