検索
連載

基本データ型の型変換を習得するソースコードで学ぶ SJC-P 5.0 ドリル(7)(2/2 ページ)

本連載は、サン・マイクロシステムズ認定のJava資格Sun Certified Programmer for Java 2 Platform 5.0(SJC-P5.0)に対応しています。最新の出題傾向に基づいて、ソースコードの問題を中心に毎回模擬問題を1問出題します。ソースコードに慣れながら、SJC-P合格を目指して頑張りましょう。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

解答

 A

解説

 3行目では、char型で宣言された変数num1に「a」の値が格納されており、int型で宣言された変数num2には「10」の値が格納されています。char型は、Unicodeで表現できる1文字を表す際に使用されますが、数値として解釈すると符号なし整数(0〜65535)を表します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 4行目では、print()メソッドを呼び出しています。print()メソッドはオーバーロードされていますが、char型の引数を取るメソッドがないため、暗黙変換が適用され7行目のint型の引数を取るprint()メソッドが呼び出されます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 5行目もprint()メソッドを呼び出していますが、引数はint型であるため、7行目のprint()メソッドが呼び出されます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 実行結果は、それぞれ「97」と「10」と出力します。「char num1 = 'a'」に対する出力結果が「97」となります。これはint型への暗黙の型変換が行われたことにより、アスキーコードで「a」に割り当てられた「97」が表示されるためです。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

さらにもう一歩

 暗黙変換やキャストによる明示的な変換は、配列に対しても使用可能です。ただし、基本データ型の配列であっても、配列自体は参照型として扱われるため、参照型の型変換のルールが適用されます。

図4 配列の型変換
図4 配列の型変換

 図4では、int型の配列をjava.lang.Object型の変数へ代入可能です。しかし、double型の配列で宣言された変数には格納することができず、コンパイルエラーとなります。このように、配列に格納している値が基本データ型であっても、配列自体は参照型になるため、配列の型変換は参照型のルールが適用されます。(※参照型の型変換については次回解説します)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

筆者紹介

山本道子

有限会社Ray代表。千葉県出身。一般事務、派遣を経て2000年サン・マイクロシステムズ入社。J2SEのほか、J2EEなどサーバサイドJavaコース担当およびテキスト開発に携わる。2004年退職後、有限会社Rayを設立し、システム開発、インストラクタ、執筆などを手掛けている。



前のページへ |       

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る