2012-05-11 8 views
3

私は、Javaの初心者です、とのコード行に遭遇している:それはカッコ内にあるとき(Button)(ボタン)とはどういう意味ですか?

Button orderButton = (Button)findViewById(R.id.order); 

何を意味するのでしょうか?

このように内部に置く用語は何ですか?

+1

です。 –

答えて

6

これは型キャストです。結果をtypeof(Button)にキャストしています

+0

タイプキャスティングはいつ必要ですか?この行がそれを使わなかったら何が起こるだろうか? – user1389811

+0

他の回答を読む☺ –

+1

@ user1389811:これは例で最もよく説明されています: 'Animal'と派生型' Dog'があり、 'Animal'型を返す関数を持っていますが、あなたは*知っています*何らかの理由で)戻り値が実際に 'Dog'のインスタンスであり、結果を格納する変数が' Dog'型の場合、型キャストが必要です。 'Dog d =(Dog)getTheAnimalキャストなしで祖先型( 'Animal')変数に子孫型(' 'Dog'')を割り当てることができるので、逆は真です:' Animal a = getADog(); ' –

1

typecastです。 findViewByIdViewオブジェクトを返しますが、Buttonオブジェクトが必要です。 (Button)は、ビューをボタンにキャストします。

1

これは、タイプキャストと呼ばれます。findViewById(R.id.order);によって返されたオブジェクトは、Buttonから拡張される可能性があります。コードを書いた人は、その関数呼び出しによって返されたオブジェクトは実際にはButtonのインスタンスであると考えているので、関数の戻り値をButtonのインスタンスに型キャストしています。

3

実行環境とIDEがfindViewById(R.id.order)によって返されているオブジェクトのタイプを知ることを可能にすることです。

findViewById(R.id.order)は、特定のタイプではなく汎用オブジェクトを返します。 Buttonにはオブジェクトが参照する項目に関連するメソッドが含まれているので、新しい変数orderButtonが正しいメソッドにアクセスできるように型を伝える必要があります。

これが答えを選ぶ簡単なサンプル

http://www.java-samples.com/showtutorial.php?tutorialid=1170

関連する問題