Top >VB.NET 練習問題集

8. クラスⅡ

練習問題 8 - 1

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

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

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

  • Cat クラスのインスタンスを作成する
  • プロパティ、Name、Age に名前、年齢を設定する
  • ShowProfile を実行する
  • Sleep を実行する

Class Animal
    Public Property Name() As String = ""    ' 名前
    Public Property Age() As Integer = 0     ' 年齢

    Public Sub ShowProfile()
        Console.WriteLine(_Name & "," & _Age & "歳")
    End Sub
End Class

Class Cat
    Inherits Animal

    Public Sub Sleep()
        Console.WriteLine("スースー")
    End Sub
End Class

Sub Main()
    Dim MyCat As New Cat()

    MyCat.Name = "たま"
    MyCat.Age = 3
    MyCat.ShowProfile()
    MyCat.Sleep()
End Sub

練習問題 8 - 2

前問の Animal クラスを以下のように変更しなさい。Name、Age をコンストラクタで設定するようにします。
それに合わせて、Cat クラスを変更しなさい。

Class Animal
    Public Property Name() As String    ' 名前
    Public Property Age() As Integer    ' 年齢

    Public Sub New(nm As String, ag As Integer)
        _Name = nm
        _Age = ag
    End Sub

    Public Sub ShowProfile()
        Console.WriteLine(_Name & "," & _Age & "歳")
    End Sub
End Class

Class Cat
    Inherits Animal

    Public Sub New(nm As String, ag As Integer)
        MyBase.New(nm, ag)
    End Sub

    Public Sub Sleep()
        Console.WriteLine("スースー")
    End Sub
End Class

Sub Main()
    Dim MyCat As New Cat("たま", 3)

    MyCat.ShowProfile()
    MyCat.Sleep()
End Sub

練習問題 8 - 3

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

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

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

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

Class Animal
    Public Property Name() As String    ' 名前
    Public Property Age() As Integer    ' 年齢

    Public Sub New(nm As String, ag As Integer)
        _Name = nm
        _Age = ag
    End Sub

    Public Sub ShowProfile()
        Console.WriteLine(_Name & "," & _Age & "歳")
    End Sub
End Class

Class Cat
    Inherits Animal

    Public Sub New(nm As String, ag As Integer)
        MyBase.New(nm, ag)
    End Sub

    Public Sub Sleep()
        Console.WriteLine("スースー")
    End Sub
End Class

Class Dog
    Inherits Animal
        Public Sub New(nm As String, ag As Integer)
            MyBase.New(nm, ag)
    End Sub

    Public Sub Run()
        Console.WriteLine("トコトコ")
    End Sub
End Class

Sub Main()
    Dim MyCat As New Cat("たま", 3)
    Dim MyDog As New Dog("ぽち", 4)

    MyCat.ShowProfile()
    MyDog.ShowProfile()
    MyCat.Sleep()
    MyDog.Run()
End Sub

練習問題 8 - 4

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

    Public Overridable Sub Speak()
        Console.WriteLine("......")
    End Sub

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

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

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

Class Animal
    Public Property Name() As String    ' 名前
    Public Property Age() As Integer    ' 年齢

    Public Sub New(nm As String, ag As Integer)
        _Name = nm
        _Age = ag
    End Sub

    Public Sub ShowProfile()
        Console.WriteLine(_Name & "," & _Age & "歳")
    End Sub

    Public Overridable Sub Speak()
        Console.WriteLine("......")
    End Sub
End Class

Class Cat
    Inherits Animal

    Public Sub New(nm As String, ag As Integer)
        MyBase.New(nm, ag)
    End Sub

    Public Sub Sleep()
        Console.WriteLine("スースー")
    End Sub

    Public Overrides Sub Speak()
        Console.WriteLine("ニャー")
    End Sub
End Class

Class Dog
    Inherits Animal

    Public Sub New(nm As String, ag As Integer)
        MyBase.New(nm, ag)
    End Sub

    Public Sub Run()
        Console.WriteLine("トコトコ")
    End Sub

    Public Overrides Sub Speak()
        Console.WriteLine("ワンワン")
    End Sub
End Class

Sub Main()
    Dim MyCat As New Cat("たま", 3)
    Dim MyDog As New Dog("ぽち", 4)

    MyCat.ShowProfile()
    MyDog.ShowProfile()
    MyCat.Speak()
    MyDog.Speak()
End Sub

練習問題 8 - 5

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

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

Sub Main()
    Dim MyPets As Animal() = New Animal(3) {}

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

    For Each Pet As Animal In MyPets
        Pet.ShowProfile()
        Pet.Speak()
    Next
End Sub
PAPER BOWL
NEZEN