- PR -

conector.open()メソッドの戻り値

1
投稿者投稿内容
はちみつガール
会議室デビュー日: 2002/01/31
投稿数: 15
投稿日時: 2002-01-31 01:25
はじめまして。
CLDCにあるconectorクラスのopen()メソッドについて質問があります。
これは戻り値にconnectionインターフェイスのインスタンスを返すとリファレンスに
書いてあり、確かインターフェイスはインスタンスを作ることができないはずなのに、なぜ
こういうことができるのか理解ができずに困っています。
どういう意味なのでしょうか?

 
はたはた
常連さん
会議室デビュー日: 2002/01/27
投稿数: 25
投稿日時: 2002-01-31 09:40
こんにちは。

connectionインターフェイスを実装(implements)しているクラスのインスタンスを返すのだと思われます。
ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2002-01-31 09:41
これは正確に書くと、「connectionインタフェースを実装した(名前がわからない)クラスのインスタンスが返されている」といった感じになるのでしょうか。

即ち、クラス名が分からなくても、「connectionインタフェースを実装したクラス」ということだけ分かれば、「connectionインタフェースで定義されているメソッド」は使えるということになり、このクラス名やインスタンスを返すメソッドが変わったとしても、それを使う側は意識せずに使えるので便利になります。

こんな説明でいいでしょうか?
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2002-01-31 09:44
実際にはインターフェースを実装したクラスのインスタンスが戻ります。
ただし、そのクラスが何なのかは意識する必要はありません。
インターフェースがあたかもクラスであるように使っていればよいのです。

気になるのでしたら戻ってきたインスタンスににgetClass()して実装クラスを
調べてみるのも面白いかもしれません。

このような、インターフェースを用いたやり方はどこにでも出てきます。
(java.sqlやjava.awt.event、javax.swing.eventなどのパッケージ)
どうやって実装しているのか、という話でしたらSDKのソースなども
参考になるかもしれません。

[ メッセージ編集済み 編集者: まりり 編集日時 2002-01-31 09:47 ]
はちみつガール
会議室デビュー日: 2002/01/31
投稿数: 15
投稿日時: 2002-01-31 09:49
レスありがとうございました。
とても参考になりました。
1

スキルアップ/キャリアアップ(JOB@IT)