Top >C# 練習問題集

8. クラスⅡ

練習問題 8 - 1

以下の Animal クラスを継承したクラス(派生クラス)、Cat を作成しなさい

  • Cat は メンバー・メソッド Sleep を持つ
    Sleep を実行するとスースーという文字列を表示する

次のプログラムを作成しなさい

  • Cat クラスのインスタンスを作成する
  • 変数 Name、Age に名前と年齢を設定する
  • ShowProfile を実行する
  • Sleep を実行する

class Animal
{
    public string Name = "";    // 名前
    public int Age = 0;         // 年齢

    public void ShowProfile()
    {
        Console.WriteLine(Name + "," + Age + "歳");
    }
}

class Cat : Animal
{
    public void Sleep()
    {
        Console.WriteLine("スースー");
    }
}

class Exercise
{
    static void Main(string[] args)
    {
        Cat MyCat = new Cat();

        MyCat.Name = "たま";
        MyCat.Age = 3;
        MyCat.ShowProfile();
        MyCat.Sleep();
    }
}

練習問題 8 - 2

前問の Animal クラスを以下のように変更しなさい。Name、Age を自動実装プロパティにし、コンストラクタで初期化するようにします。
それに合わせて、Cat クラスを変更しなさい。

class Animal
{
    public string Name { getprivate set; }    // 名前
    public int Age { getprivate set; }        // 年齢

    public Animal(string name, int age)
    {
        Name = name;
        Age = age;
    }

    public void ShowProfile()
    {
        Console.WriteLine(Name + "," + Age + "歳");
    }
}

class Cat : Animal
{
    public Cat(string name, int age)
        : base(name, age)
    {
    }

    public void Sleep()
    {
        Console.WriteLine("スースー");
    }
}

class Exercise
{
    static void Main(string[] args)
    {
        Cat MyCat = new Cat("たま", 3);

        MyCat.ShowProfile();
        MyCat.Sleep();
    }
}

練習問題 8 - 3

前問に加え Animal クラスを継承したクラス、Dog を作成しなさい

  • Dog はメンバー・メソッド Run を持つ
    Run を実行するとトコトコという文字列を表示する

次のプログラムを作成しなさい

  • Cat クラスと Dog クラスのインスタンスを作成する
  • それぞれの ShowProfile を実行する
  • Cat のインスタンスの Sleep を実行する
  • Dog のインスタンスの Run を実行する

class Animal
{
    public string Name { getprivate set; }    // 名前
    public int Age { getprivate set; }        // 年齢

    public Animal(string name, int age)
    {
        Name = name;
        Age = age;
    }

    public void ShowProfile()
    {
        Console.WriteLine(Name + "," + Age + "歳");
    }
}

class Cat : Animal
{
    public Cat(string name, int age)
        : base(name, age)
    {
    }

    public void Sleep()
    {
        Console.WriteLine("スースー");
    }
}

class Dog : Animal
{
    public Dog(string name, int age)
        : base(name, age)
    {
    }

    public void Run()
    {
        Console.WriteLine("トコトコ");
    }
}

public class Exercise
{
    static void Main(string[] args)
    {
        Cat MyCat = new Cat("たま", 3);
        Dog MyDog = new Dog("ぽち", 4);

        MyCat.ShowProfile();
        MyDog.ShowProfile();
        MyCat.Sleep();
        MyDog.Run();
    }
}

練習問題 8 - 4

前問の Animal クラスに以下の仮想メソッドを追加しなさい

public virtual void Speak()
{
    Console.WriteLine( "......" );
}

Dog クラス、Cat クラスに Speak メソッドをオーバーライドするメソッドを追加しなさい
Dog ではワンワン、Cat ではニャーという文字列を表示します

次のプログラムを作成しなさい

  • Cat クラスと Dog クラスのインスタンスを作成する
  • それぞれの ShowProfile を実行する
  • それぞれの Speak を実行する

class Animal
{
    public string Name { getprivate set; }    // 名前
    public int Age { getprivate set; }        // 年齢

    public Animal(string name, int age)
    {
        Name = name;
        Age = age;
    }

    public void ShowProfile()
    {
        Console.WriteLine(Name + "," + Age + "歳");
    }

    public virtual void Speak()
    {
        Console.WriteLine("......");
    }
}

class Cat : Animal
{
    public Cat(string name, int age)
        : base(name, age)
    {
    }

    public void Sleep()
    {
        Console.WriteLine("スースー");
    }

    public override void Speak()
    {
        Console.WriteLine("ニャー");
    }
}

class Dog : Animal
{
    public Dog(string name, int age)
        : base(name, age)
    {
    }

    public void Run()
    {
        Console.WriteLine("トコトコ");
    }

    public override void Speak()
    {
        Console.WriteLine("ワンワン");
    }
}

public class Exercise
{
    static void Main(string[] args)
    {
        Cat MyCat = new Cat("たま", 3);
        Dog MyDog = new Dog("ぽち", 4);

        MyCat.ShowProfile();
        MyDog.ShowProfile();
        MyCat.Speak();
        MyDog.Speak();
    }
}

練習問題 8 - 5

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

  • Animal クラスの配列を作成する要素数は 4
  • 配列の偶数番目( 0 と 2 )には Cat クラスのインスタンス、奇数番目( 1 と 3 )には Dog クラスのインスタンスを設定する
  • 配列の総ての要素の ShowProfile と Speak メソッドを実行する

public class Exercise
{
    static void Main(string[] args)
    {
        Animal[] MyPets = new Animal[4];

        MyPets[0] = new Cat("たま", 3);
        MyPets[1] = new Dog("ぽち", 4);
        MyPets[2] = new Cat("ミケ", 4);
        MyPets[3] = new Dog("ジョン", 5);

        foreach( Animal Pet in MyPets )
        {
            Pet.ShowProfile();
            Pet.Speak();
        }
    }
}
PAPER BOWL
NEZEN