練習問題

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);
    }
  }
  

next>> 9.9 練習問題 解答