Javaプログラミング練習問題(コンストラクタ)

Java

こんにちは。ECF Tech
ブログ担当 Michiharu.Tです。

Javaプログラミング向け練習問題、オブジェクト指向プログラミングの第2回です。今回のテーマはコンストラクタです。コンストラクタは動作仕様が複雑な部分もありますが、今回は基本的な内容になっています。ぜひ、学習にお役立てください。

一般的なJavaの学習順序に沿ったテーマの一覧(※随時追加)は、こちらのリンクよりご確認頂けます。

Javaプログラミング

Javaのトピックスです。主に初心者向けにプログラミング学習ネタを提供していきます。

Java練習問題(コンストラクタ)

問題編

Q001

問題

下のItemクラスの仕様に基づいて、Item.javaを作成してください。
提供コードのMain.javaをItem.javaと同じフォルダ内に保存して動作確認し、実行結果が得られることを確認してください。
(仕様)
Itemクラスは店の商品を扱うクラスです。下記に基づいて作成をしてください。

  • 次のメンバ変数を作成する
    • 商品名を表すnameをString型で宣言する
    • 価格を表すpriceをint型で宣言する
  • コンストラクタを作成する
    • 引数:
      • name:String型
      • price:int型
    • 処理内容:引数で与えられた値を、同名のメンバ変数に代入する。
  • displayメソッドを作成する
    • 引数:なし
    • 処理内容:インスタンスの内容を表示する。実行結果を参考にして作成。

提供コード

(Main.java)

実行結果

Q002

問題

下のShopクラスの仕様に基づいて、Shop.javaを作成してください。
提供コードのMain.javaをShop.javaと同じフォルダ内に保存して動作確認し、実行結果が得られることを確認してください。
(仕様)
Shopクラスは店の商品を扱うクラスです。下記に基づいて作成をしてください。

  • メンバ変数を作成する
    • 店名を表すnameをString型で宣言する
    • 売上高を表すsalesをint型で宣言する
  • コンストラクタ①を作成する
    • 引数:
      • name:String型
      • sales:int型
    • 処理内容:引数で与えられた値を、同名のメンバ変数に代入する。
  • コンストラクタ②を作成する(2つ目)
    • 引数:なし
    • 処理内容:コンストラクタ①を呼び出す。第1引数には "出店予定"の文字列を渡し、第2引数には を渡す。
  • displayメソッドを作成する
    • 引数:なし
    • 処理内容:インスタンスの内容を表示する。実行結果を参考にして作成。

提供コード

Main.java

実行結果

Q003

問題

下のStudentクラスの仕様に基づいて、Student.javaを作成してください。
提供コードのMain.javaをStudent.javaと同じフォルダ内に保存して動作確認し、実行結果が得られることを確認してください。
(仕様)
Studentクラスは生徒の情報を扱うクラスです。下記に基づいて作成をしてください。

  • メンバ変数を作成する
    • 名前を表すnameをString型で宣言する
    • 国語の得点を表すkokuをint型で宣言する
    • 数学の得点を表すsuをint型で宣言する
    • 英語の得点を表すeiをint型で宣言する
  • コンストラクタ①を作成する
    • 引数:
      • name:String型
      • koku:int型
      • su:int型
      • ei:int型
    • 処理内容:引数で与えられた値を、同名のメンバ変数に代入する。
  • コンストラクタ②を作成する(2つ目)
    • 引数:name:String型
    • 処理内容:コンストラクタ①を呼び出す。第1引数は、本メソッドの第1引数をそのまま渡す。それ以外の引数にはすべて を渡す。
  • showメソッドを作成する
    • 引数:なし
    • 処理内容:インスタンスの内容を表示する。実行結果を参考にして作成。

Mainクラスのmainメソッドでは次の処理を行なっています。参考にしながら提供コードのコメント部分に追記してください。
(mainメソッドの動作)

  • Student型の配列 studentsを宣言する
  • 配列の各要素に次の3名の成績をインスタンスとして代入する
    • 名前:タロウ 国語:80点,数学:75点,英語:90点
    • 名前:ハナコ 国語:90点,数学:70点,英語:80点
    • 名前:ジロウ 欠席のため未受験。各科目0点
  • 「成績表」と表示する
  • 配列の各要素が指すインスタンスのshowメソッドを呼び出し、3名の得点を表示する。

提供コード

Main.java

実行結果

Q004

問題

下のDaikeiクラスの仕様に基づいて、Daikei.javaを作成してください。
(仕様)
Daikeiクラスは台形を扱うクラスです。下記に基づいて作成をしてください。

  • メンバ変数を作成する
    • 上底を表すjyoteiをint型で宣言する
    • 下底を表すkateiをint型で宣言する
    • 高さを表すtakasaをint型で宣言する
  • コンストラクタ①を作成する
    • 引数:
      • jyotei:int型
      • katei:int型
      • takasa:int型
    • 処理内容:引数で与えられた値を、同名のメンバ変数に代入する。
  • getMensekiメソッドを作成する
    • 引数:なし
    • 処理内容:メンバ変数のjyotei,katei,takasaを使って、面積( (上底+下底)×高さ÷2 )を求めてその値を返す。 ※小数点は切捨て

提供コードのMain.javaをDaikei.javaと同じフォルダに配置します。
Mainクラスのmainメソッドでは次の処理を行なっています。参考にしながら提供コードのコメント部分に追記してください。
(mainメソッドの動作)

  • 上底:12、下底:8、高さ:5の台形を表すインスタンスを生成し、変数d1に代入する。
  • 上底:8、下底:4、高さ:10の台形を表すインスタンスを生成し、変数d2に代入する。
  • d1,d2のgetMensekiメソッドをそれぞれ呼び出し、その戻り値を表示する。

提供コード

Main.java

実行結果

解答編

それでは解答編です。基本はソースコードのみの提供ですが、ポイントを絞ってコメントで説明を入れております。

Q001

(Item.java)

(Main.java)

Q002

(Shop.java)

(Main.java)

Q003

(Student.java)

(Main.java)

Q004

(Daikei.java)

(Main.java)

おわりに

いかがでしたでしょうか。類似の問題が多かったかもしれません。様々な仕様に基づいてクラスやコンストラクタを繰り返し作っていくことで、感覚がつかめてきたら良いと思います。オブジェクト指向編の問題も引き続きご提供していけたらと思います。よろしくお願いします。


合同会社イー・シー・エフでは、子ども向けプログラミングなどの教育講座を実施しています。プログラミング教室の案内や教育教材の情報、また関連するご相談・問い合わせにつきましては下記よりご確認ください。

ECFエデュケーション
キッズも大人も。沖縄からITのマナビを応援します
タイトルとURLをコピーしました