検索
連載

Java SE 5.0の新機能、staticインポートを習得するソースコードで学ぶ SJC-P 5.0 ドリル(2)(2/2 ページ)

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

PC用表示
Share
Tweet
LINE
Hatena
前のページへ |       

正解

 E

解説

 staticインポートの構文は以下のとおりです。importとstaticを逆にするとコンパイルエラーとなります。

import static パッケージ名.クラス名.static変数名;
import static パッケージ名.クラス名.staticメソッド名;
import static パッケージ名.クラス名.*;

 選択肢B、D、Fは、importとstaticが逆に記述されているので、すべてコンパイルエラーです。選択肢Aは、パッケージ名しか記述していないのでコンパイルエラーです。選択肢Cは、パッケージ名およびクラス名は記載されていますが、staticメンバを記載していないのでコンパイルエラーです。

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

さらにもう一歩

 staticインポートでは、あるクラスのstaticメンバをすべてインポートするために*(ワイルドカード)を使用することも可能です(ソースコード3-2)。

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

 しかし、ワイルドカードを使用し、複数のクラスのstaticメンバをstaticインポートする場合、修飾部分を除いて同じ名前のものがあるとコンパイルエラーとなります。

 例えば、ソースコード4-2にあるように、java.langパッケージに属するMathクラスにはPIというstatic定数があります。また独自に作成したクラスでPIというstatic定数を用意します。これらのstaticメンバを使用するクラス(Sample3クラス)でワイルドカードを使用してstaticインポートを行っていますが、コンパイルエラーとなります。

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

 もし、Sample3クラス(ソースコード4-3)でMathクラスのPIを使用したいのであれば、Sample3クラスの1〜2行目を以下(ソースコード5)のように修正します。

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

筆者紹介

山本道子

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



前のページへ |       

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る