Javaプログラミング練習問題(クラスの基本)

Java

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

Javaプログラミング向け練習問題、今回からオブジェクト指向プログラミングに入ります。最初のテーマはクラスの基本です。Javaはオブジェクト指向に入ってからがおもしろい!というわけで、ぜひプログラミングの学習にお役立てください。 一般的なJavaの学習順序に沿ったテーマの一覧(※随時追加)は、こちらのリンクよりご確認頂けます。
Javaプログラミング

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

解説動画

2023/02/11 解説動画を掲載しました。

問題編

Q001

問題

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

  • 商品名を表すnameをString型で宣言する
  • 価格を表すpriceをint型で宣言する

提供コード

Main.java

public class Main {
    public static void main(String[] args) {
        Item ringo = new Item();
        Item banana = new Item();
        ringo.name = "リンゴ";
        ringo.price = 150;
        banana.name = "バナナ";
        banana.price = 100;
        System.out.println(ringo.name);
        System.out.println(ringo.price);
        System.out.println(banana.name);
        System.out.println(banana.price);
    }
}

実行結果

リンゴ
150
バナナ
100

(Item.java)

public class Item {
    String name;
    int price;
}

Q002

問題

  • 下のShopクラスの仕様に基づいて、Shop.javaを作成してください。
  • 提供コード中の①②を適切に埋めてください。
  • 提供コードのMain.javaとShop.javaと同じフォルダ内に保存して動作確認し、実行結果が得られることを確認してください。
(Shopクラスの仕様)
Shopクラスは店を扱うクラスです。次のメンバ変数(フィールド)を作成してください。
  • 名前を表すnameをString型で宣言する
  • 売上金額を表すsaleをint型で宣言する

提供コード

Main.java

public class Main {
    public static void main(String[] args) {
        Shop s1 = new Shop();
        Shop s2 = new Shop();
        s1.name = "パン屋";
        s1.sale = 100000;
        s2.name = "洋服屋";
        s2.sale = 150000;
        System.out.println(①);
        System.out.println(②);
    }
}

実行結果

パン屋 売上:100000
洋服屋 売上:150000

(Shop.java)

public class Shop {
    String name;
    int sale;
}

(Main.java)

public class Main {
    public static void main(String[] args) {
        Shop s1 = new Shop();
        Shop s2 = new Shop();
        s1.name = "パン屋";
        s1.sale = 100000;
        s2.name = "洋服屋";
        s2.sale = 150000;
        System.out.println(s1.name + " 売上:" + s1.sale);
        System.out.println(s2.name + " 売上:" + s2.sale);
    }
}

Q003

問題

下のStudentクラスの仕様に基づいて、Student.javaを作成してください。
提供コードのMain.javaとStudent.javaと同じフォルダ内に保存して動作確認し、実行結果が得られることを確認してください。
(Studentクラスの仕様)
Studentクラスは店を扱うクラスです。次のフィールドとメソッドを作成してください。
  • 名前を表すnameをString型で宣言する
  • 得点を表すscoreをint型で宣言する
  • showScoreメソッドを作成する。
    • 引数:なし
    • 戻り値:なし
    • 処理内容:フィールドを用いて「nameさんの得点はscore点です。」と表示する。

提供コード

Main.java

public class Main {
    public static void main(String[] args) {
        Student s1 = new Student();
        Student s2 = new Student();

        s1.name = "タロウ";
        s1.score = 75;
        s2.name = "ハナコ";
        s2.score = 80;

        s1.showScore();
        s2.showScore();
    }
}

実行結果

タロウさんの得点は75点です。
ハナコさんの得点は80点です。

(Student.java)

public class Student {
    String name;
    int score;

    public void showScore() {
        System.out.println(this.name+"さんの得点は"+this.score+"点です。");
    }
}

Q004

問題

下のCalculatorクラスの仕様に基づいて、Calculator.javaを作成してください。
提供コードのMain.javaとCalculator.javaと同じフォルダ内に保存して動作確認し、実行結果が得られることを確認してください。
(Calculatorクラスの仕様)
Calculatorクラスは税込価格の計算を扱うクラスです。次のメンバ変数(フィールド)を作成してください。
  • 税率を表すtaxをdouble型で宣言する
  • setTaxメソッドを作成する。
    • 引数:
      • tax:double型
    • 戻り値:なし
    • 処理内容:引数 taxの値を、メンバ変数 taxに代入します。
  • calcメソッドを作成する。
    • 引数:
      • price:int型
    • 戻り値:int
    • 処理内容:メンバ変数taxの持つ税率を使って、引数 priceの税込価格を計算して返します。計算結果が端数になった場合は切り捨てます。

提供コード

Main.java

public class Main {
    public static void main(String[] args) {
        Calculator c1 = new Calculator();
        Calculator c2 = new Calculator();

        c1.setTax(0.08);
        c2.setTax(0.1);

        System.out.println("税込(8%)" + c1.calc(1000));
        System.out.println( "税込(10%)" + c2.calc(1000) );
    }
}

実行結果

税込(8%)1080
税込(10%)1100

(Calculator.java)

public class Calculator {
    double tax;

    public void setTax(double tax) {
        this.tax = tax;
    }

    public int calc(int price) {
        return (int)(price * (1+tax));
    }
}

Q005

問題

下のCircleクラスの仕様に基づいて、Circle.javaを作成してください。
提供コードのMain.javaとCircle.javaと同じフォルダ内に保存して動作確認し、実行結果が得られることを確認してください。
(Circleクラスの仕様)
Circleクラスは円を扱うクラスです。次のメンバ変数(フィールド)とメソッドを作成してください。
  • 円周率を表すPIをdouble型の定数として宣言し、初期値3.14を設定しておく
  • 半径を表すhankeiをint型で宣言する
  • setHankeiメソッドを作成する。
    • 引数:
      • hankei:int型
    • 戻り値:なし
    • 処理内容:引数 hankeiの値を、メンバ変数hankeiへ代入する
  • getEnsyuメソッドを作成する。
    • 引数:なし
    • 戻り値:double
    • 処理内容:メンバ変数 hankeiからその円周の長さを求め、戻り値として返す
  • getMensekiメソッドを作成する。
    • 引数:なし
    • 戻り値:double
    • 処理内容:メンバ変数 hankeiからその円の面積を求め、戻り値として返す

提供コード

Main.java

public class Main {
    public static void main(String[] args) {
        Circle c1 = new Circle();
        c1.setHankei(8);
        System.out.println(c1.getEnsyu());
        System.out.println(c1.getMenseki());
    }
}

実行結果

50.24
200.96

(Calculator.java)

public class Circle {
    final double PI = 3.14;
    int hankei;

    public void setHankei( int hankei ) {
        this.hankei = hankei;
    }
    public double getEnsyu(){
        return 2*PI*this.hankei;
    }
    public double getMenseki(){
        return this.hankei * this.hankei * PI;
    }
}

おわりに

いかがでしたでしょうか。オブジェクト指向の考え方が身につくとプログラムの全体像がとらえられるようになると思います。様々な練習問題をとおして、ぜひ理解を深めてください。オブジェクト指向編の問題も引き続きご提供していけたらと思います。よろしくお願いします。


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

ECFエデュケーション
タイトルとURLをコピーしました