2012-01-15 10 views
0

それでもJavaおよびIを学習の初期段階では、私は理解していなかったいくつかのコードでは、次の見た:これはメソッド(Java)ですか?

public class sprite { 
    private Image image; 

    public Sprite(Image image) { 
      this.image = image; 
    } 

私はちょうどよ、コードが何をしているかの説明を求めていませんよ"公式Sprite(...")は何らかの方法ですか?戻り値の型は宣言されておらず、無効ではありません。

実際にコードが実際にどのようなものかを実際に説明します。私の頭の上にいるかもしれません。私は言語の構造について知りたいだけです。

+0

コンストラクタです。 –

+1

これはオブジェクトコンストラクタです。 –

+1

なぜこの質問が下落したのか分かりません... –

答えて

5

あなたはタイプミスがあると仮定します最初の行は実際にはpublic class Sprite {です)、それはconstructorです。これはタイプSpriteのオブジェクトを初期化するために使用されるので、何も返されないので、メソッドではありません。

あなたのような何かをしたときに呼び出されます:

Image image = ...; 
Sprite s = new Sprite(image); // Constructor called here 

[。あなたはタイプミスを持っていない場合、それはコンストラクタではありませんが、それは単に無効なJavaの]

1

それはコンストラクタです。これは、クラスのオブジェクトをインスタンス化する特別なメソッドです。通常は値を設定し、使用する内部オブジェクトを初期化します。あるクラスに対して、異なる署名を持つ複数のコンストラクタを持つことができます。

この場合、コンストラクタはpublicであり、オブジェクトのimageプロパティをコンストラクタに渡されるイメージに初期化します。

詳細については、see this documentationです。

1

これはコンストラクタです。

パラメータからSpriteクラスのインスタンスを作成することができます。

1

public Sprite(Image image)は、クラスSpriteのコンストラクタです。クラスのインスタンスが作成されるたびに(「new」キーワードを使用する場合など)、この場合はコンストラクタの呼び出し元から渡されたインスタンス変数をimageに設定する必要があります。

3

javaでは、戻り値の型を宣言せず、クラスと同じ名前を持つクラスメソッドはコンストラクタと呼ばれます。これは、新しいオブジェクトを作成するときに呼び出されるメソッドです。

public class Foo { 
    private int bar; 
    public Foo(int arg) { 
     this.bar = arg; 
    } 
} 

Foo f = new Foo(1); 

Fooの新しいインスタンスを作成し、それはそれはコンストラクタですbar 1に

1

内部変数の設定です。 Spriteクラスの最初の文字を大文字にする必要があることに注意してください。

関連する問題