- ベストアンサー
add( )メソッドについて
import java.applet.Applet; import java.awt.*; /* <applet code="Sample" width=400 height=250> </applet> */ public class Sample extends Applet { public void init() { // ラベルを作成する。 Label lb = new Label("こんにちは。", Label.LEFT); add(lb); } } 上記のプログラムのadd(lb)について質問です。上記のadd()メソッドは、lbはLabelクラスなので、LabelクラスかComponentクラスのパラメーターを一つ持つvoid型のadd()メソッドとなると思うのですが、調べてもそのようなメソッドが存在しませんどうしてでしょうか?上述のことが間違っているのでしょうか?教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>add( )メソッドがComponent型の返り値を得るので 一般に、メソッドの返値は、利用しようとしまいといいのです。 利用しない場合(返値は)単に捨てられるだけです。 このaddメソッドの場合、返値は、引数で渡したcompなので、特別取っておく必要のない物です。 返値として、引数自体を返すのは、このメソッド自体を他のメソッドの引数に書けるとかそういった利便性のためだと思います。
その他の回答 (2)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
java.lang.Object java.awt.Component java.awt.Container java.awt.Panel java.applet.Applet ですので java.awt.Container から継承されたメソッド public Component add(Component comp) だと思います。
- y_nakkan
- ベストアンサー率46% (24/52)
上記のadd()は、Appletクラスのスーパークラスのさらにスーパークラスであるjava.awt.Containerクラスの メソッドだと思います。シグニチャは public Component add(Component comp) です。 java.awt.Labelクラスのスーパークラスは java.awt.Component であるため、 add(Component comp) メソッドへのパラメタに、Componentオブジェクト参照を渡すことができます。
補足
public Component add(Component comp)ということは、add( )メソッドの型がvoid型ではなくComponent型であり、add( )メソッドがComponent型の返り値を得るので、Component x = add(Component comp)というような表記になるんじゃないのですか?