• ベストアンサー

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()メソッドとなると思うのですが、調べてもそのようなメソッドが存在しませんどうしてでしょうか?上述のことが間違っているのでしょうか?教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>add( )メソッドがComponent型の返り値を得るので 一般に、メソッドの返値は、利用しようとしまいといいのです。 利用しない場合(返値は)単に捨てられるだけです。 このaddメソッドの場合、返値は、引数で渡したcompなので、特別取っておく必要のない物です。 返値として、引数自体を返すのは、このメソッド自体を他のメソッドの引数に書けるとかそういった利便性のためだと思います。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

java.lang.Object  java.awt.Component   java.awt.Container    java.awt.Panel     java.applet.Applet ですので java.awt.Container から継承されたメソッド public Component add(Component comp) だと思います。

ab5
質問者

補足

public Component add(Component comp)ということは、add( )メソッドの型がvoid型ではなくComponent型であり、add( )メソッドがComponent型の返り値を得るので、Component x = add(Component comp)というような表記になるんじゃないのですか?

  • y_nakkan
  • ベストアンサー率46% (24/52)
回答No.1

上記のadd()は、Appletクラスのスーパークラスのさらにスーパークラスであるjava.awt.Containerクラスの メソッドだと思います。シグニチャは public Component add(Component comp) です。 java.awt.Labelクラスのスーパークラスは java.awt.Component であるため、 add(Component comp) メソッドへのパラメタに、Componentオブジェクト参照を渡すことができます。

関連するQ&A