DD1310/DD1314/DA3009 Programmeringsteknik 2012
Laboration 4
Läs Kap 8 i kursboken:
Klasser, metoder, objekt, konstruktor, attribut
Labben redovisas på veckans övning. Det Pythonprogram du skriver
kan ge 0-2 bonuspoäng (beroende på hur väl det uppfyller kraven).
Instuderingsfrågorna redovisas med ett prov, som också kan ge max 2 bonuspoäng.
Program
Hitta på en egen klass
- Klassen ska ha minst fem attribut och minst fem metoder.
Viktigt! Använd olika namn för attribut och metoder.
- Obligatoriska metoder är
__init__
och __str__
- Skapa ett objekt.
- Gör en meny där man kan testa alla objektets metoder.
- Lägg upp din klass i Wuala
- Kopiera någon annans klass till ditt program.
- Skapa ett objekt av den nya klassen, och lägg in menyalternativ som testar alla dess metoder.
- Lägg till sist upp ditt färdiga program i Wuala.
- Extrauppgifter:
- Inför default-parametrar i din __init__.
- Gör dina objekt jämförbara.
- Inför felhantering för alla indata.
- Gör en metod i din egen klass som tar emot ett objekt av den lånade klassen som indata.
Testning
Glöm inte att testa att ditt program fungerar som det ska.
Tips: Ett enkelt sätt att spara testdata är att köra programmet och kopiera
allt som syns på skärmen.
Krav
Krav för programmen i labb 4:
- Din egen klass ska ha minst fem attribut och minst fem metoder, däribland
__init__
och __str__
.
- Klasser och funktioner ska stå överst i programfilen, övriga satser ska stå längst ner (blanda inte).
- Programmet ska ha en meny där man kan testa alla metoder i bägge klasserna.
- och dessutom följande krav från tidigare labbar:
- Programmet ska ha en kommentar överst med författarnas namn och datum.
- Programmet ska vara uppdelat i funktioner med lämpliga parametrar och returvärden.
- Varje funktion/metod ska ha en förklarande kommentar.
- Inga globala variabler får förekomma (i funktioner eller metoder).
- Variabel-/funktions-/attribut-namn ska göra programmet lättare att förstå.
- Testdata ska finnas med i kommentar sist i programmet.
- Programfilen ska kopieras till gruppens Wuala-katalog.
Instuderingsfrågor
Frågorna om filer/exceptions fick inte plats i förra labben, så dom kommer här istället.
- Hur anger man om en textfil ska öppnas för läsning eller skrivning?
- Ge två olika förslag på hur man kan läsa in alla rader från en fil.
- Varför vill man låta ett program skriva ut data på en fil?
- Vad är en exception? Ge ett exempel!
- Beskriv skillnaden mellan klass och objekt?
- Vad är ett attribut?
- Vad är en metod?
- Hur fungerar
__init__
?
- Vad är
self
?
- Hur anropar man ett objekts metoder?
- Hur kommer man åt ett objekts attribut inuti klassen?
- Hur kommer man åt ett objekts attribut utifrån (från huvudprogrammet)?
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 nästa labb!