DD1311 Programmeringsteknik för Civilingenjör & Lärare och Datorlingvistik
Laboration 5
Innehåll:
Objektorienterad programmering, arv, polymorfism, moduler
Läs Kap 9 i boken!
Denna labb redovisas på veckans gruppmöte. Ta med utskrifter av
dina program samt dina svar på instuderingsfrågorna.
Vid redovisningen ska du kunna förklara både program och svar
för dina kurskamrater och din assistent.
Program
Krav för programmen i labb 5:
Klassen ska ha lämpliga attribut och metoder.
Viktigt! Använd olika namn för attribut och metoder.
Kommentera alla metoder.
- Hitta på en egen klass
- Klassen ska ha flera attribut och metoder.
Obligatoriska metoder är
__init__
och __str__
, i övrigt
får du välja helt själv.
- Skapa ett objekt och testa att metoderna fungerar.
-
- Skapa flera objekt
- Skriv först ihop en textfil med data för flera objekt.
- Låt programmet läsa in data från textfilen...
- ... och skapa objekt som läggs i en lista.
- Gå igenom listan och anropa en metod för varje
objekt i listan. Se till att nåt syns på skärmen också!
- Gör en modul
- Klipp ut hela klassen och spara den i en ny .py-fil.
- Lägg in lämplig import-sats i ditt program...
- ... och provkör.
-
- Extrauppgifter:
- Lägg till en meny där man kan välja vad man vill göra.
- Skriv ut objekten på fil igen när programmet avslutas.
- Se till att programmet inte kraschar för felaktig inmatning.
Instuderingsfrågor
- Föreslå något som kan representeras med en klass.
- Vilka attribut ska din klass ha?
- Och vilka metoder?
- Rita ett objekt (med exempeldata) som är en instans av din klass.
- Kan man skicka ett objekt som parameter till en funktion eller metod?
- Kan man definiera flera klasser i samma program?
- Hur går det till när ett objekt skickar ett meddelande till ett annat?
- Föreslå ett program där objekt behöver interagera.
- Hur lagrar man många objekt av samma typ i sitt program?
- Rita ett exempel på en sådan struktur.
- Hur ser man till att
print
kan skriva ut ett objekt?
- Vad används arv (inheritance) till?
- Ge ett exempel på polymorfism.
- Hur gör man en egen modul?
Efter labben
Hur tycker du att ditt eget arbete med labben fungerade?
Borde du ha gjort något annorlunda?
Fundera en stund, och skriv upp några tips till dig själv inför arbetet med P-uppgiften!