インタフェースに実装をもてるの?という質問で類似の内容への回答がありましたが、具体例としてどのようになるのかお聞きしたいです。

javax.sound.midiを使用したプログラムです。以下のようなソースを実行したとき、device[]にはMidiDeviceインタフェースを実装したクラスのインスタンスが格納される、というように理解しています。このうち、あるデバイスについてgetClass()を実行したところ、

com.sun.media.sound.MidiOutDevice

という名称が出力されました。このクラスは一体どこで実装されているのでしょうか?

----------------------------------------------------------

info = MidiSystem.getMidiDeviceInfo();
device = new MidiDevice[info.length];

for(int i=0; i<info.length; i++){
try{
device[i] = MidiSystem.getMidiDevice(info[i]);
} catch(MidiUnavailableException e){}
}

このQ&Aに関連する最新のQ&A

A 回答 (5件)

com.sun.media.sound.MidiOutDevice


で実装されています。
クラスパスの中のどこかに必ず存在しています。

質問の内容から察するに、インタフェースやクラスというものをご理解されていないと思いますので、そういった基本的なところから勉強しなおされたほうがよいと思います。

この回答への補足

ご回答ありがとうございます。ご指摘のとおり勉強不足ですが、折り返し
質問させてください。

質問のソースでは、debice[]はインタフェースのMidiDevice型でフィールド
として定義していますが、そこにMidiDeviceを実装したMidiOutDeviceクラス
のインスタンスが格納されているという理解でよいのでしょうか。

勉強不足で質問してしまい恐縮ですが、よろしくお願いします。

補足日時:2009/05/27 14:17
    • good
    • 0

補足その2



> 型で定義したものと違うクラス名もしくは
> インタフェース名のものは格納されないものだと思ってしまっていました。

いえいえ。
例えばJDBCドライバの実装クラスは oracle とか postgresql とか mysql
とかDB毎に違いますが、使う人は 基本的に java.sql のインターフェイスクラスを使いますよね。
(ってDB扱ったことないと思いつかないと思いますが)
便利だと思いますよぉ。
    • good
    • 0
この回答へのお礼

お礼が遅くなって申し訳ありません。なるほど・・・ありがとうございます。以前ご指摘がありましたが勉強不足を実感します。

みなさまありがとうございました。

お礼日時:2009/05/31 21:55

補足



> 質問のソースでは、debice[]はインタフェースのMidiDevice型でフィール
> ドとして定義していますが、そこにMidiDeviceを実装したMidiOutDeviceク
> ラスのインスタンスが格納されているという理解でよいのでしょうか。

OKです。
    • good
    • 0
この回答へのお礼

ありがとうございます。型で定義したものと違うクラス名もしくは
インタフェース名のものは格納されないものだと思ってしまっていました。

お礼日時:2009/05/28 00:04

> このクラスは一体どこで実装されているのでしょうか?


の意味がいまひとつわからないので、的をはずすかもしれませんが。

javax.sound.midi.MidiSystem

で。

この回答への補足

ご回答ありがとうございます。
ご指摘の文章はミスです。申し訳ありません。

このクラスは一体どこに記述されているのでしょうか?

の誤りです。他の方のご指摘を見ると、ここを修正しても本質的に
解決にはなっていないのだと思いますが、訂正させていただきます。

補足日時:2009/05/27 14:22
    • good
    • 0

#1 に補足:


「本当のクラスファイル」が存在するとは限らないので注意してください. どこかの jar の中にこっそり隠れているかもしれません.

この回答への補足

補足していただきありがとうございます。探してみます。

補足日時:2009/05/27 14:21
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング