チャレンジ問題【Java-30】~メソッド⑤引数や戻り値に配列を使用&コマンドライン引数~

Javaチャレンジ問題

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

こんぶ
こんぶ

こんにちは。こんぶです。

今日は、「【Java-30】メソッド⑤引数や戻り値に配列を使用&コマンドライン引数」のチャレンジ問題を解いてみましょう!

今日の問題は【Java-30】の内容を元にしているので、復習してから挑戦してみてくださいね。

チャレンジ問題

①基本型変数を引数として指定した場合のように、引数として値そのものを渡すことを何といいますか?

②配列型変数を引数として指定した場合のように、引数としてアドレスを渡すことを何といいますか?

③「値渡し」の場合に呼び出し先で引数の内容を書き換えると、呼び出し元の変数はどうなりますか?

④「参照渡し」の場合に呼び出し先で引数の内容を書き換えると、呼び出し元の変数はどうなりますか?

⑤Javaプログラムの起動時に追加情報を渡すことができますが、その追加情報のことを何といいますか?

⑥コマンドライン引数を利用してJavaプログラムを起動させる場合には、どのように指定しますか?

⑦引数に配列を使用した次のコードを実行すると、どのように画面に表示されますか?

解答

①値渡し

基本型変数を引数として指定した場合は、メソッドを呼び出した時点で変数に代入されている値をコピーして渡しています。このように引数として値そのものを渡すことを「値渡し」というのでしたね。

②参照渡し(参照の値渡し)

配列型変数を引数として指定した場合は、配列の先頭要素のアドレス情報を渡しています。このように引数としてアドレスを渡すことを「参照渡し」というのでしたね。

③呼び出し元の変数は変化しない

基本型変数を引数として指定した場合、メソッドを呼び出した時点で変数に代入されている値をコピーして渡しているため、呼び出し元の変数は変化しません。

④呼び出し元の内容も変更される

配列型変数を引数として指定した場合、呼び出し元も呼び出し先も同じアドレスを指していることになるため、呼び出し先で内容を書き換えてしまうと呼び出し元の内容も変更されます。

⑤コマンドライン引数

⑥「java プログラム名 引数リスト」

→引数が複数ある場合は半角スペースで区切って入力します。

⑦次のように画面に表示されます。

→この例では、まずint[]型配列「numbers」を宣言し、その配列を引数として渡してprintNumberメソッドを呼び出しています。メソッドの定義ではint[]型配列arrayを引数として設定したprintNumberメソッドを定義し、「配列の要素:」と画面に表示した後、呼び出し元のメソッドから受け取った配列の要素を1つずつ画面に表示していきます。

お疲れさまでした

どれくらい正解できましたか?

基本型変数と配列型変数を引数とする場合の違いについて理解し、誤って呼び出し元の内容を変更してしまうことがないように気を付けましょう。

次の内容はこちらです→【Java-31】複数クラスに分割したプログラム

それでは、こんぶはじゃ~

コメント

タイトルとURLをコピーしました