※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

こんにちは。こんぶです。
今日は、「【Java-33】パッケージに所属したクラス」のチャレンジ問題を解いてみましょう!
今日の問題は【Java-33】の内容を元にしているので、復習してから挑戦してみてくださいね。
チャレンジ問題
①パッケージに所属したクラスをjavaコマンドで実行する場合は、どのように指定する必要がありますか?
②JVM内部にあり、指定された完全限定クラス名(FQCN)を持つクラスのクラスファイルをPC内から検索しJVMに読み込んで利用可能にしてくれるものを何といいますか?
③クラスファイルを格納しているフォルダの場所のことを何といいますか?
④クラスパスを指定する方法の1つに、javaコマンドでJVMを起動する際に「-cpオプション」または「-classpathオプション」で指定する方法がありますが、javaコマンドでどのように指定しますか?(-cpオプション、-classpathオプションどちらも回答してください)
⑤クラスパスに、複数のフォルダやJAR/ZIPファイルを組み合わせて指定する場合は、デリミタ文字で区切りますが、デリミタ文字はWindows、macOSやLinuxではそれぞれ何ですか?
⑥パッケージに属したクラスファイルをクラスローダーに読み込んでもらうには、どこにクラスファイルを配置する必要がありますか?
⑦パッケージ「a.b.c」に属するクラス「Cat」を正しく配置するには、どこに「Cat.class」ファイルを格納すればよいですか?(「現在のクラスパス」を使用して、Cat.classを配置するクラスパスを回答してください)
⑧javacコマンドでは、何を引数として指定して実行しますか?
⑨javaコマンドでは、何を引数として指定して実行しますか?
解答
①java 起動したいクラスの完全限定クラス名
→パッケージに所属したクラスをjavaコマンドで実行する場合は、必ず完全限定クラス名(FQCN)を指定する必要があるのでしたね。
②クラスローダー
③クラスパス
→クラスローダーは、クラスパスの情報を参考にPCのハードディスク内の該当ファイルを探し出して読み込んでくれるのでしたね。
④「java -cp クラスパス 完全限定クラス名」「java -classpath クラスパス 完全限定クラス名」
⑤Windowsでは「セミコロン(;)」、macOSやLinuxでは「コロン(:)」
⑥現在のクラスパスを基準としてパッケージ階層に対応したフォルダ階層を作り、その中に必要なクラスファイルを配置する
→クラスファイルを正しく配置しないと「ClassNotFoundException」というエラーが表示されるのでしたね。
⑦現在のクラスパス\a\b\c
→現在のクラスパスのフォルダ内に「a」フォルダを作成し、さらにその中に「b」フォルダ、さらにその中に「c」フォルダを作成し、そこに「Cat.class」ファイルを格納することになります。
⑧ソースファイルのファイル名
→javacコマンドは、コンパイルするソースファイルのファイル名(.java)を引数として指定して実行することで、Javaのソースコードをバイトコード(.class)に変換します。
⑨完全限定クラス名(FQCN)
→javaコマンドは完全限定クラス名(FQCN)を引数として指定して実行することで、コンパイル済みのバイトコード(.class)を実行してくれます。
お疲れさまでした
どれくらい正解できましたか?
パッケージに所属したクラスの扱いは、複雑に見えるところもありますが、開発を進めていく上で必要になるので、何度も復習して理解しておきましょう。
次の内容はこちらです→【Java-34】パッケージの役割(クラス名)
それでは、こんぶはじゃ~
コメント