LoginSignup
1
2

More than 1 year has passed since last update.

Javaオリジナル問題作成2(Java入門編:スッキリわかるJava)

Last updated at Posted at 2021-04-21

Javaオリジナル問題作成1の続きです。

7章(オブジェクト指向をはじめよう)、8章(インスタンスとクラス)

■問題1
Heroクラスを作成。name(String型),hp(int型)のフィールドを準備し、以下のメソッド作成。
メソッド名:sit
戻り値:なし
引数リスト:int sec
処理内容:
・自分自身のhpフィールドに引数(sec)をたす。
・自分自身のnameフィールドを表示。(表示形式:nameフィールド+は+引数(sec)+秒座った。)
・引数(sec)を表示。(表示形式:HPが+引数(sec)+ポイント回復した。)

Mainクラスを作成。Heroインスタンスを生成。
nameフィールド:カズヤ(自身の名前)
hpフィールド:100
表示内容:
・sitメソッドを呼び出してください。(引数は5)
・hpフィールドを表示してください。

解答

Main.java
//問題1
package hero1;

public class Main {

    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ
        Hero h = new Hero();

        h.name = "カズヤ";
        h.hp = 100;

        h.sit(5);
        System.out.println(h.hp);
    }
}


//実行結果
カズヤは5秒座った
HPが5ポイント回復した
105


Hero.java
package hero1;

public class Hero {
    public String name;
    public int hp;


    public void sit(int sec) {
            this.hp += sec;
            System.out.println(this.name + "は" + sec + "秒座った");
            System.out.println("HPが" + sec + "ポイント回復した。");

    }
}

9章(さまざまなクラス機構)、10章(カプセル化)

■問題1
testパッケージ作成してください。(以下のすべてのクラスはここに格納)
Testクラスを作成し、name(String型)、age(int型)フィールドを作成してください。(アクセス修飾子 private)
name,ageフィールドのgetter,setterを作成してください。
Mainクラスを作成し、Testクラスのname、ageフィールドに値をセットしてください。(値はname(自分の名前),age(自分の年齢))
name、ageフィールドにセットした値を表示させてください。
(表示形式:年齢は+name(自分の名前)+歳です)
(表示形式:名前は+age(自分の年齢)+です)

■問題2
Heroクラス作成し、hp(int型)のフィールド,Hero(コンストラクタ)を作成してください。※コンストラクタ(中身:this.hp=100;)
Main1クラスを作成し、h1,h2のhpを画面に表示させてください。(今回は100が2つ表示されているとOKです。)

解答

Main.java
//問題1
package test;

public class Main {

        public static void main(String[] args) {
                // TODO 自動生成されたメソッド・スタブ
               Test h = new Test();

               h.setAge(26);
               h.setName("カズヤ");

               System.out.println("年齢は"+h.getAge()+"歳です");
               System.out.println("名前は"+h.getName()+"です");
        }
}



//実行結果
年齢は26歳です
名前はカズヤです
Test.java
package test;

public class Test {

    private String name;

    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

Main.java
//問題2
package test;

public class Main1 {

        public static void main(String[] args) {
                // TODO 自動生成されたメソッド・スタブ
                Hero h = new Hero();
                Hero h1 = new Hero();

                System.out.println(h.hp);
                System.out.println(h1.hp);

        }

}



//実行結果
100
100

Hero.java
package test;

public class Hero {
        int hp;

        Hero() {
                this.hp = 100;

        }
}

11章(継承)

■問題1
herosパッケージ作成してください。(以下のすべてのクラスはここに格納)
Heroクラス作成し、attackメソッド(内容:攻撃)、runメソッド(内容:逃げる)を追加してください。
SuperHeroクラス(Heroクラスを継承)を作成し、
flyメソッド(内容:飛ぶ)、landメソッド(内容:着地)を追加してください。
Mainクラス作成し、Herokuクラスのrunメソッドを呼び出してください。
「逃げる」が表示されればOKです。

■問題2(問題1続き)
問1のSuperHeroクラス、runメソッドをオーバーライドさせてください。(内容:スーパーヒーローが逃げた)
Mainクラスからrunメソッドを呼び出し、「スーパーヒーローが逃げた」が表示されればOKです。

■問題3(問題2続き)
Mainクラスから
SuperHeroクラスのrunメソッド(内容:スーパーヒーローが逃げた)とHeroクラスのrunメソッド(内容:逃げる)を呼び出してください。

解答

Main.java
//問題1
package heros;

public class Main {

        public static void main(String[] args) {
                // TODO 自動生成されたメソッド・スタブ
                SuperHero s = new SuperHero();
                s.run();
        }
}




//実行結果
逃げる
Hero.java
package heros;

public class Hero {
        public void attack() {
                System.out.println("攻撃");
        }

        public void run() {
                System.out.println("逃げる");

        }
}

SuperHero.java
package heros;

public class SuperHero extends Hero {
        public void fly() {
                System.out.println("飛ぶ");
        }

        public void land() {
                System.out.println("着地");
        }
}

SuperHero.java
//問題2
package heros;

public class SuperHero extends Hero {
        public void fly() {
                System.out.println("飛ぶ");
        }

        public void land() {
                System.out.println("着地");
        }

        public void run() {
                System.out.println("スーパーヒーローが逃げた");
        }
}





//実行結果
スーパーヒーローが逃げた問題1で使ったMain.javaを実行すると実行結果が出てくる

SuperHero.java
//問題3
package heros;

public class Main {

        public static void main(String[] args) {
                // TODO 自動生成されたメソッド・スタブ
                SuperHero s = new SuperHero();
                s.run();
                s.go();
        }
}




//実行結果
スーパーヒーローが逃げた
逃げる

SuperHero.java

package heros;

public class SuperHero extends Hero {
        public void fly() {
                System.out.println("飛ぶ");
        }

        public void land() {
                System.out.println("着地");
        }

        public void run() {
                System.out.println("スーパーヒーローが逃げた");
        }

        public void go() {
                super.run();
        }
}

Javaオリジナル問題作成1(Java入門編:スッキリわかるJava

次回に続く

Javaオリジナル問題作成3(Java入門編:スッキリわかるJava

Javaオリジナル問題作成4(Java入門編:スッキリわかるJava

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2