練習問題
9.8 練習問題
本章で習った内容を元に練習問題を解いてください。
問1 次の設問①~⑤について○か×で答えなさい。
設問
① Javaには色々な機能を持ったクラスがたくさん提供されている。
② クラスはメソッドの引数や戻り値の型として定義できない。
③ クラス型の変数はメソッドの引数や戻り値に利用できる。
④ クラス型変数同士の代入は別々のオブジェクトとしてコピーされる。
⑤ クラス型の配列は可変長の配列になる。
問2 次の設問①~⑤に使用するStringクラスのメソッドを選択肢候補より選んで答えなさい。
選択肢
equals substring length charAt split
設問
① 文字列から任意の1文字を取得する。
② 文字列を指定のキーワードで分割して取得する。
③ 文字列型同士の比較を行う。
④ 文字列から任意の長さで文字列を分割して取得する。
⑤ 文字列の長さを取得する。
問3 以下に示すソースコードPractice0901.javaを実行した場合、実行結果の空白①~⑧に入る本のタイトルと価格をそれぞれ答えなさい。
実行結果① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch09exercise
③ 名前: Books
ソースコード① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch09exercise
③ 名前: Practice0901
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる
Books.java
package jp.co.f1.basic.ch09exercise; public class Books { private String title; //タイトル private int price; //価格 //コンストラクタ public Books(String title,int price){ this.title = title; this.price = price; } //引数を各フィールド変数に設定するメソッド public void setBookInfo(String title,int price){ this.title = title; this.price = price; } //本の情報を画面に表示するメソッド public void showBookInfo(){ System.out.println("この本のタイトルは「" + this.title + "」です。"); System.out.println("この本の価格は「" + this.price + "」円です。"); System.out.println("-------------------------------------------"); } }
Practice0901.java
package jp.co.f1.basic.ch09exercise; public class Practice0901 { public static void main(String[] args) { System.out.println("-------------------------------------------"); Books book1 = new Books("Java入門", 2980); book1.showBookInfo(); //①と②の結果表示 book1 = new Books("Java基礎",1500); book1.showBookInfo(); //③と④の結果表示 Books book2 = book1; book2.showBookInfo(); //⑤と⑥の結果表示 book2.setBookInfo("Java入門基礎", 3200); book1.showBookInfo(); //⑦と⑧の結果表示 } }
問4 以下に示すPractice0902.javaのソースコードを、Booksオブジェクト配列を利用した内容のPractice0903.javaを作成しなさい。
作成ヒント
①Booksオブジェクト配列を要素数「5」で定義します。
②繰り返し文を利用しBooksオブジェクト配列に、各要素にオブジェクトを生成して代入します。
③繰り返し文を利用しBooksオブジェクト配列の、各要素からshowBookInfoメソッドを呼び出します。
① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch09exercise
③ 名前: Practice0902
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる
問5 Practice0904.javaのソースコードを、以下の変更仕様に基づいたPractice0905.javaを作成しなさい。
変更仕様①mainメソッドの点数格納用配列を、通常のint配列から整数値を扱うArrayList配列に変更する。
②①の変更に合わせてmainメソッド処理内部を、ArrayList配列を利用した方法に変更する。
③showSumScoreメソッドの引数の型を、ArrayList
④③の変更に合わせてshowSumScoreメソッド処理内部を、ArrayList配列を利用した方法に変更する。
ソースコード
① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch09exercise
③ 名前: Practice0904
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる
package jp.co.f1.basic.ch09exercise; import java.util.InputMismatchException; import java.util.Scanner; public class Practice0904 { /* * 点数が格納された配列を引数に受け取り、その点数を全て表示と * 合計点を算出して表示します。 */ public static void showSumScore(int[] score){ int sum=0; //合計点格納用変数 for(int i=0;i<score.length;i++){ System.out.println((i+1)+"人目の点数は「" + score[i] + "」です。"); sum += score[i]; } System.out.println("合計点は「" + sum + "」です。"); } public static void main(String[] args) { int count = 0; //カウント格納用変数 int[] score = new int[5]; //点数格納用配列 //Scannerクラスのオブジェクト生成 Scanner sin = new Scanner(System.in); //繰り返し処理で5人分の点数入力を行う while(true){ try{ //キーボードから点数入力 System.out.print("点数を入力して下さい=>"); score[count] = sin.nextInt(); if(count==4){ //5回入力でループを抜ける break; } //カウントをインクリメント count++; }catch(InputMismatchException e){ System.out.println("正数値を入力して下さい!"); //入力バッファのクリア sin.nextLine(); } } System.out.println("-------------------------"); //入力点数全てと合計点を表示するメソッド呼び出し showSumScore(score); } }