Top >Java 練習問題集

7. クラスⅠ

練習問題 7 - 1

以下の Dog クラスを使用して、次のプログラムを作成しなさい

  • Dog クラスのインスタンスを作成する
  • SetName メソッドで名前を設定する
  • ShowProfile メソッドで名前を表示する

class Dog
{
    private String Name;

    public void SetName( String nm )
    {
        Name = nm;
    }

    public void ShowProfile()
    {
        System.out.println( "名前は、" + Name + "です。" );
    }
}

public class Exercise
{
    public static void main( String[] args )
    {
        Dog MyDog = new Dog();

        MyDog.SetName( "ぽち" );
        MyDog.ShowProfile();
    }
}

練習問題 7 - 2

前問の Dog クラスに、次の内容を追加しなさい

  • 年齢を保持する int 型のメンバー変数
  • 年齢を設定するメンバー・メソッド、SetAge
  • ShowProfile メソッドで名前、年齢を表示するようにする

修正した Dog クラスを使用して次のプログラムを作成しなさい

  • Dog クラスのインスタンスを作成する
  • 名前、年齢を設定する
  • プロフィールを表示する

class Dog
{
    private String  Name;
    private int     Age;

    public void SetName( String nm )
    {
        Name = nm;
    }

    public void SetAge( int ag )
    {
        Age = ag;
    }

    public void ShowProfile()
    {
        System.out.println( "名前は、" + Name + "、" + Age + "歳です。" );
    }
}

public class Exercise
{
    public static void main( String[] args )
    {
        Dog MyDog = new Dog();

        MyDog.SetName( "ぽち" );
        MyDog.SetAge( 3 );
        MyDog.ShowProfile();
    }
}

練習問題 7 - 3

前問の Dog クラスを使用して次のプログラムを作成しなさい

  • Dog クラスのインスタンスを2つ作成する
  • 1つ目のインスタンスに、名前、年齢を設定する
  • 2つ目のインスタンスに、名前、年齢を設定する
  • 1つ目のインスタンスの、プロフィールを表示する
  • 2つ目のインスタンスの、プロフィールを表示する

class Dog
{
    private String  Name;
    private int     Age;

    public void SetName( String nm )
    {
        Name = nm;
    }

    public void SetAge( int ag )
    {
        Age = ag;
    }

    public void ShowProfile()
    {
        System.out.println( "名前は、" + Name + "、" + Age + "歳です。" );
    }
}

public class Exercise
{
    public static void main( String[] args )
    {
        Dog Dog1 = new Dog();
        Dog Dog2 = new Dog();

        Dog1.SetName( "ぽち" );
        Dog1.SetAge( 3 );
        Dog2.SetName( "ジョン" );
        Dog2.SetAge( 5 );
        Dog1.ShowProfile();
        Dog2.ShowProfile();
    }
}

練習問題 7 - 4

前問の Dog クラスに、次の内容を追加しなさい

  • 犬種を保持するメンバー変数( String 型)
  • 犬種を設定する引数( String )を持つコンストラクタ
  • ShowProfile メソッドを犬種、名前、年齢、を表示するようにする

修正した Dog クラスを使用して次のプログラムを作成しなさい

  • 犬種を指定して Dog クラスのインスタンスを作成する
  • 名前、年齢を設定する
  • プロフィールを表示する

class Dog
{
    private String  Name;
    private int     Age;
    private String  Kind;

    public Dog( String kd )
    {
        Kind = kd;
    }

    public void SetName( String nm )
    {
        Name = nm;
    }

    public void SetAge( int ag )
    {
        Age = ag;
    }

    public void ShowProfile()
    {
        System.out.println(
            Kind + "で名前は、" + Name + "、" + Age + "歳です。" );
    }
}

public class Exercise
{
    public static void main( String[] args )
    {
        Dog MyDog = new Dog( "秋田犬" );

        MyDog.SetName( "ぽち" );
        MyDog.SetAge( 3 );
        MyDog.ShowProfile();
    }
}

練習問題 7 - 5

硬貨の入れ物のようなクラス、CoinCase を作成しなさい

  • 500 円、100 円、50 円、10 円、5 円、1 円が、それぞれ何枚あるかを管理する
  • AddCoins メソッドで硬貨を追加する
    引数は硬貨の種類( int )と枚数( int )
  • GetCount メソッドで、指定した硬貨が、何枚あるかを取得する
    引数は硬貨の種類( int )、戻り値は枚数( int )
  • GetAmount メソッドで硬貨の総額を取得する
    戻り値は硬貨の総額( int )

CoinCase クラスを使用して次のプログラムを作成しなさい

  • CoinCase クラスのインスタンスを作成する
  • 種類と枚数を入力し、AddCoins メソッドで硬貨を追加することを 10 回繰り返す
  • 各硬貨が何枚あるかを表示する
  • 総額を表示する

import java.io.*;

class CoinCase
{
    private int Yen500 = 0;
    private int Yen100 = 0;
    private int Yen50 = 0;
    private int Yen10 = 0;
    private int Yen5 = 0;
    private int Yen1 = 0;

    public void AddCoins( int kind, int count )
    {
        switch( kind )
        {
            case 500:
                Yen500 += count;
                break;
            case 100:
                Yen100 += count;
                break;
            case 50:
                Yen50 += count;
                break;
            case 10:
                Yen10 += count;
                break;
            case 5:
                Yen5 += count;
                break;
            case 1:
                Yen1 += count;
                break;
        }
    }

    public int GetCount( int kind )
    {
        switch( kind )
        {
            case 500:
                return Yen500;
            case 100:
                return Yen100;
            case 50:
                return Yen50;
            case 10:
                return Yen10;
            case 5:
                return Yen5;
            case 1:
                return Yen1;
        }

        return 0;
    }

    public int GetAmount()
    {
        return ( Yen500 * 500 ) + ( Yen100 * 100 )
                + ( Yen50 * 50 ) + ( Yen10 * 10 )
                + ( Yen5 * 5 ) + Yen1;
    }
}

public class Exercise
{
    public static void main( String[] args ) throws IOException
    {
        BufferedReader br = new BufferedReader(
                                new InputStreamReader( System.in ) );
        CoinCase MyCase = new CoinCase();

        forint i = 0 ; i < 10 ; i++ )
        {
            System.out.print( "硬貨の種類は?" );
            int kind = Integer.parseInt( br.readLine() );
            System.out.print( "硬貨の枚数は?" );
            int count = Integer.parseInt( br.readLine() );

            MyCase.AddCoins( kind, count );
        }

        System.out.println( "500円は" + MyCase.GetCount( 500 ) + "枚" );
        System.out.println( "100円は" + MyCase.GetCount( 100 ) + "枚" );
        System.out.println( "50円は" + MyCase.GetCount( 50 ) + "枚" );
        System.out.println( "10円は" + MyCase.GetCount( 10 ) + "枚" );
        System.out.println( "5円は" + MyCase.GetCount( 5 ) + "枚" );
        System.out.println( "1円は" + MyCase.GetCount( 1 ) + "枚" );
        System.out.println( "総額は" + MyCase.GetAmount() + "円" );
    }
}

練習問題 7 - 6

前問の CoinCase クラスに、次の内容を追加しなさい

  • 総ての硬貨の枚数を取得する、引数なしの GetCount メソッド
  • 指定した種類の硬貨の総額を取得する、引数のある GetAmount メソッド

修正した CoinCase クラスを使用して次のプログラムを作成しなさい

  • CoinCase クラスのインスタンスを作成する
  • 種類と枚数を入力し、AddCoins メソッドで硬貨を追加することを 10 回繰り返す
  • 各硬貨が何枚でいくらあるかを表示する
  • 硬貨の総枚数を表示する
  • 総額を表示する

import java.io.*;

class CoinCase
{
    private int Yen500 = 0;
    private int Yen100 = 0;
    private int Yen50 = 0;
    private int Yen10 = 0;
    private int Yen5 = 0;
    private int Yen1 = 0;

    public void AddCoins( int kind, int count )
    {
        switch( kind )
        {
            case 500:
                Yen500 += count;
                break;
            case 100:
                Yen100 += count;
                break;
            case 50:
                Yen50 += count;
                break;
            case 10:
                Yen10 += count;
                break;
            case 5:
                Yen5 += count;
                break;
            case 1:
                Yen1 += count;
                break;
        }
    }

    public int GetCount( int kind )
    {
        switch( kind )
        {
            case 500:
                return Yen500;
            case 100:
                return Yen100;
            case 50:
                return Yen50;
            case 10:
                return Yen10;
            case 5:
                return Yen5;
            case 1:
                return Yen1;
        }

        return 0;
    }

    public int GetCount()
    {
        return Yen500 + Yen100 + Yen50 + Yen10 + Yen5 + Yen1;
    }

    public int GetAmount( int kind )
    {
        switch( kind )
        {
            case 500:
                return Yen500 * 500;
            case 100:
                return Yen100 * 100;
            case 50:
                return Yen50 * 50;
            case 10:
                return Yen10 * 10;
            case 5:
                return Yen5 * 5;
            case 1:
                return Yen1 * 1;
        }

        return 0;
    }

    public int GetAmount()
    {
        return ( Yen500 * 500 ) + ( Yen100 * 100 )
                + ( Yen50 * 50 ) + ( Yen10 * 10 )
                + ( Yen5 * 5 ) + Yen1;
    }
}

public class Exercise
{
    public static void main( String[] args ) throws IOException
    {
        BufferedReader br = new BufferedReader(
                                new InputStreamReader( System.in ) );
        CoinCase MyCase = new CoinCase();

        forint i = 0 ; i < 10 ; i++ )
        {
            System.out.print( "硬貨の種類は?" );
            int kind = Integer.parseInt( br.readLine() );
            System.out.print( "硬貨の枚数は?" );
            int count = Integer.parseInt( br.readLine() );

            MyCase.AddCoins( kind, count );
        }

        System.out.println( "500円は" + MyCase.GetCount( 500 )
                        + "枚、" + MyCase.GetAmount( 500 ) + "円" );
        System.out.println( "100円は" + MyCase.GetCount( 100 )
                        + "枚、" + MyCase.GetAmount( 100 ) + "円" );
        System.out.println( "50円は" + MyCase.GetCount( 50 )
                        + "枚、" + MyCase.GetAmount( 50 ) + "円" );
        System.out.println( "10円は" + MyCase.GetCount( 10 )
                        + "枚、" + MyCase.GetAmount( 10 ) + "円" );
        System.out.println( "5円は" + MyCase.GetCount( 5 )
                        + "枚、" + MyCase.GetAmount( 5 ) + "円" );
        System.out.println( "1円は" + MyCase.GetCount( 1 )
                        + "枚、" + MyCase.GetAmount( 1 ) + "円" );
        System.out.println( "全部で" + MyCase.GetCount() + "枚" );
        System.out.println( "総額は" + MyCase.GetAmount() + "円" );
    }
}
PAPER BOWL
NEZEN