4030 Intro arv - animal

Lärandemål

Kunna göra följande med samlingsklassen List:

  • Skapa ett lista, det vill säga ett objekt av klassen List
  • Lägga till element i listan
  • Använda en foreach-slinga för att stega igenom elementen i listan

Teori klassen List

Exempelkod följer.

using System;
using System.Collections.Generic;

public class Inköpslista
{
  private List<String> lista;

  public Inköpslista()
  {
    lista = new List<String>();
    lista.Add("Bröd");
    lista.Add("Banan");
    lista.Add("Mjölk");
  }

  public void Print()
  {
    foreach(String vara in lista)
    {
      Console.WriteLine(vara);
    }
  }    
}

public class Main
{
  public static void Main()
  {
    Inköpslista minLista = new Inköpslista();
    minLista.Print();
  }
}

Ger utskriften

Bröd
Banan
Mjölk

Källa: List, Microsoft

Uppgift

Du ska skriva tre klasser Cat, Dog och Zoo. Detaljer följer nedan.

Metoden Main

Gör ett nytt projekt i Visual Studio, en konsol-applikation.

En lämplig Main-metod visas nedan.

static void Main(string[] args)
{
  Console.WriteLine("Hello World!");

  // Keep the console window open in debug mode.
  Console.WriteLine("Press any key to exit.");
  Console.ReadKey();
}

Klassen Cat

Klassen Cat ska ha en objektvariabler som heter age. I konstruktorn ska man kunna ange kattens ålder (age). Objektvariabeln age ska få det medskickade värdet när konstruktorn anropas. Anropet kan se ut som

new Cat(3);

Det ska finnas en metod Act. Metoden ska bara skriva ut "mjau, mjau, mjao" till terminalfönstret. Alternativt så kan katten säga mjau så många gånger som den är år gammal.

Testa

Skriv följande i metoden Main för att testa utskiften.

Cat minKatt = new Cat(5);
minKatt.Act();

Klassen Dog

Klassen Dog fungera på samma sätt som klassen Cat. Den enda skillnaden är att när metoden Act anropas skrivs "vov, vov, vov" ut till terminalfönstret.

Klassen Zoo

Klassen Zoo ska innehålla två objektvariabler. Ett som kan innehålla objekt av klassen Cat och ett annat som kan innehålla objekt av klassen Dog.

I konstruktorn läggs det till tre katter och två hundar i respektive objektvariabler.

Det finns en metod som heter Run. När metoden körs ska vart och ett av djuren i de båda objektvariablerna få agera. Utskriften blir då något i stil med.

mjau, mjau, mjao
mjau, mjau, mjao 
mjau, mjau, mjao
vov, vov, vov
vov, vov, vov

Testa

Skriv följande som kod i metoden Main.

Deklarera lokal variabel mittZoo.
Lägg ett objekt av klassen Zoo i variabeln mittZoo.
Anropa metoden Run på ditt zoo.

Utskriften bör bli ungefär som ovan.

Utökning

Utöka ditt program med en klass Ko. Kossan säger "Mu, Muu". Lägg till tre kossor på "zoo". Testa klassen Zoo. Utskriften bör nu se ut som.

mjau, mjau, mjao
mjau, mjau, mjao
mjau, mjau, mjao
vov, vov, vov
vov, vov, vov
Mu, Muu
Mu, Muu
Mu, Muu

Reflektion

På hur många ställen i koden behövde du ändra för att lägga till klassen Ko?

Demonstration

Be din lärare berätta om arv.