Övning 3. Datateknik A, Java I, 5 poäng

Relevanta dokument
Objektorienterad programmering i Java I

Objektorienterad programmering i Java I

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass.

Lektion 3. Datateknik A, Java I, 5 poäng

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Agenda. Objektorienterad programmering Föreläsning 13

Objektorienterad programmering D2

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

JAVAUTVECKLING LEKTION 11

TUTORIAL: KLASSER & OBJEKT

Objektorienterad programmering Föreläsning 5

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Malmö högskola 2007/2008 Teknik och samhälle

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering

Att använda Java SE JDK 6

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 20

Kort om klasser och objekt En introduktion till GUI-programmering i Java

public class BoundedCounter {

Övningsuppgift. Bankkonton. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

JAVA Mer om klasser och objektorientering

Laboration 1 - Grunderna för OOP i Java

Malmö högskola 2007/2008 Teknik och samhälle

Laboration 1: Figurer i hierarki

Uppgift 1 ( Betyg 3 uppgift )

Objektorienterad programmering i Java

Övningsuppgift. Repeterbara citat. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.

Abstrakta datatyper Laboration 2 GruDat, DD1344

Laborationsanvisning. Digital väckarklocka. Steg 2, laborationsuppgift 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Ett objekt... Exempel: Om ni tittar er runt i föreläsningssalen ser in många olika fysiska föremål:

Malmö högskola 2008/2009 CTS

Lektion 1 - Programmeringsteknik F1, ht 2003

Föreläsning 5. Föreläsning 5. Klasser och objekt. Klasser och objekt. Klasser och objekt

Laboration 1 Introduktion till Visual Basic 6.0

2203$( Föreläsning ii - Mer om Java bla this och konstruktorer. Exempel: lampa

Del A (obligatorisk för alla)

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Föreläsning 5. Föreläsning 5

1 Egna klasser. 1.1 En punkt-klass

Tentamen i TDP004 Objektorienterad Programmering Teoretisk del

Lösningsförslag övning 2.

Klasser och objekt. Henrik Johansson. August 20, 2008

Föreläsning 16 Arv. Jan Lönnberg T Grundkurs i programmering

Grundläggande programmering med C# 7,5 högskolepoäng

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Programmering för språkteknologer II, HT2011. Rum

Laboration 2: Designmönster

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

kl Tentaupplägg

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

Föreläsning 4. Klasser och objekt

Objektsamlingar i Java

Uppgift 1 ( Betyg 3 uppgift )

Laboration 2: Designmönster

EnKlass. Instans 3 av EnKlass. Instans 2 av EnKlass

Laboration nr 2. Objektorienterad programmering D2. Syfte. Redovisning. Testning. Uppgift 1

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540) Ansvarig: Jan Skansholm, tel eller

Användarhandledning Version 1.2

Objektorienterad Programmering (OOP) Murach s: kap 12-16

Programmering för språkteknologer II, HT2014. Rum

TDIU20 (exempel) TDIU20 Tentaregler

Arrayer med primitiva datatyper

Att använda Java SE JDK 6

Del A (obligatorisk för alla)

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering!

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Java, klasser, objekt (Skansholm: Kapitel 2)

Inledande programmering med C# (1DV402) Tärningarna ska kastas

Tentamen, EDAA20/EDA501 Programmering

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

Att öva på och förstå ett program med flera samverkande klasser.

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

LÖSNINGSFÖRSLAG TENTAMEN

Kursplanering Objektorienterad programmering

Design av en klass BankAccount som representerar ett bankkonto

TENTAMEN OOP

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

TENTAMEN OOP

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09

Transkript:

Datateknik A, Syfte: Att prova på att skriva egna klasser och skapa objekt av dessa klasser. Att skriva klasser med överlagrade metoder och konstruktor, samt att i en klass använda statiska medlemmar. Att läsa: Lektion 3 Uppgifter: Inlämning: 3 st Sker via inlämningsuppgifter i WebCT Lycka till!

Uppgift 1 Översikt Du ska lösa övningsuppgift 2.3 (uppgift 3 i kapitel 2) i kursboken. Syftet är att prova på att skapa en klass med en konstruktor och att använda statiska klassmedlemmar. Uppgift För er som ännu inte hunnit skaffa boken lyder uppgiften som följer: Konstruera en klass Kort som beskriver ett spelkort i en vanlig kortlek. Ett korts färg och valör skall ges när man skapar kortet. Det skall finnas metoder för att avläsa både färg och valör. Definiera dessutom en metod tostring() som gör det möjligt att enkelt skriva ut kort i formen Hjärter Dam, Klöver 8, Spader Ess etc. Utöver detta ska klassen även innehålla en statisk instansvariabel för att räkna antalet skapade kort, samt en metod som returnerar antalet skapade kort. Du ska även skriva en testklass som skapar 5 olika kort och på lämpligt sätt demonstrerar användning av metoderna i klassen Kort. Krav För att uppgiften ska anses vara godkänd ska det förutom ovanstående även finnas minst en konstruktor. Robert Jonsson Sida 1

Uppgift 2 Översikt I denna uppgift ska du skapa en enkel klass Publisher (förlag) samt två testklasser som skapar ett antal olika objekt/instanser av Publisher. Syftet med uppgiften är att stifta bekantskap med begreppen objekt, klass, metod, konstruktor och överlagring. Uppgift Du ska skriva en enkel klass som representerar ett förlag (som vi sen kommer att använda oss av i nästa uppgift). Klassen döper du till Publisher och sparas följaktligen i en fil som heter Publisher.java. Klassen ska innehålla data om förlagets namn, adress och telefonnummer. De operationer vi ska kunna utföra på objekt av klassen är att sätta och hämta namn, sätta och hämta adress, samt sätta och hämta telefonnummer. Det ska även vara möjligt att skriva ut all information om ett förlag på skärmen. Du ska också skriva två olika klasser för att prova att skapa objekt av Publisher samt att använda de metoder denna har. I ena klassen (kallas med fördel PublisherTest1) ska du skapa minst tre olika objekt av Publisher och med hjälp av dessa objekt sen demonstrera alla metoder. Detta görs t.ex. genom att kombinera metodanrop och skärmutskrifter. Bestäm namn, adress och telefonnummer direkt i koden, hårdkodat. I den andra testklassen (PublisherTest2) ska minst ett objekt av Publisher skapas. I stället för att hårdkoda data ska du låta användaren mata in uppgifter om förlagets namn, adress och telefonnummer. Därefter räcker det med att skriva ut all information om förlaget. Välj om du vill använda dig av dialogrutor eller om du använder dig av BufferedReader. Nedanstående klassdiagram (UML) ger dig en bild hur det är tänkt att klassen ska se ut (vilka instansvariabler och metoder som ska finnas). PublisherTest1 + main(args : String[ ]) PublisherTest2 + main(args : String[ ]) Använder Använder 3..* 1..* - name : String - address : String - phone : String Publisher + Publisher() + Publisher(name : String, address : String, phone : String) + setname(name : String) + setaddress(address : String) + setphone(phone : String) + getname() : String + getaddress() : String + getphone() : String + print() + tostring() : String Robert Jonsson Sida 2

De set()- och get()-metoder som finns i klassen Publisher behöver ingen närmare förklaring. Utöver dessa metoder ska det finnas (minst) två olika konstruktorer. En default-konstruktor och en konstruktor som sätter värden på objektets alla instansvariabler. Metoden print() ska snyggt och prydligt skriva ut all information om förlaget på skärmen. Metoden tostring() ska returnera en strängrepresentation av förlaget, d.v.s. ungerfär som print() men som en sträng. Bestäm själv vilken information som kan vara lämplig (enbart namnet på förlaget t.ex.). Krav För att uppgiften skall betraktas som godkänd krävs förutom ovan nämnda detaljer följande: Inga publika attribut får finnas i någon klass, endast metoder får vara publika. Alla skärmutskrifter ska vara välstrukturerade och lätta att förstå. Kommentera i källkoden och beskriv vad som händer. Klasser och metoder ska kommenteras med dokumentationskommentarer enligt följande: Klasser /** * Beskrivning och syftet med klassen * @version (version samt datum för skapande av klassen) * @author (Namn på skaparen av klassen) */ Metoder /** * Beskriv vad metoden uträttar, samt (i förekommande fall) * @param (beskriv ev. parameter 1 som skickas in till metoden) * @param (beskriv ev. parameter 2 som skickas in till metoden) * @return (beskriv ev. returvärde) */ Dessa kommentarer skall placeras omedelbart ovanför respektive klass/metod. Kommentera även vid behov inuti metoderna för att beskriva vad som sker. Robert Jonsson Sida 3

Uppgift 3 Översikt Uppgiften i denna del går även den ut på att skapa en enkel klass och ett antal objekt/instanser av denna klass. För att kunna göra detta behöver vi också en testklass. Syftet med laborationen är att, förutom att stifta bekantskap med begreppen objekt, klass, konstruktor och överlagring, lära oss att använda andra klasser i en klass. Ni ska även känna till hur vi använder klassen Integer för att konvertera strängar till heltal. Uppgift Du skall skapa en klass som representerar en CD-skiva. Klassen skall heta CD och sparas i en fil som heter CD.java. Klassen skall innehålla data om CD-skivans längd (antal sekunder), utgivningsår, titel, artist, antal låtar och vilket förlag (klassen Publisher du skrev i uppgift 2) skivan är utgiven på. Metoder ska finnas för att sätta och hämta data för alla fält, samt för att skriva ut all information om skivan. Metoden setpublisher() ska överlagras så att en variant tar ett objekt av typen Publisher som argument. En annan variant ska ta tre strängar som argument vilka är förlagets namn, adress och telefonnummer. Metoden print() ska skriva ut all data om objektet samt även vilket förlag skivan är utgiven på. Det är endast förlagets namn som ska skrivas ut. Metoden tostring() ska returnera en strängrepresentation av CD-objektet (valfritt vilken information som ska returneras, men t.ex. artist och titel kan vara lämpligt). Nedanstående klassdiagram (UML) ger dig en bild hur det är tänkt att klassen ska se ut (vilka fält och metoder som ska finnas). CD CDTest + main(args : String[ ]) Använder 3..* - length : int - releaseyear : int - title : String - artist : String - tracks : int - publisher : Publisher Publisher Har 0..* + CD() + CD(length : int, releaseyear : int, title : String, artist : String, tracks : int, publisher) + setlength(length : int) + setreleaseyear(releaseyear : int) + settitle(title : String) + setartist(artist : String) + settracks(tracks : int) + setpublisher(publisher : Publisher) + setpublisher(name : String, address : String, phone : String) + getlength() : int + getreleaseyear() : int + gettitle() : String + getartist() : String + gettracks() : int + getpublisher() : Publisher + print() + tostring() : String Robert Jonsson Sida 4

Du ska skriva en testklass som skapar minst tre CD-objekt och testar alla metoder som finns i klassen CD. Kalla den för CDTest och spara den i filen CDTest.java. Denna testklass ska skapa minst tre stycken instanser (objekt) av typen CD. Alla metoder i klassen CD skall sedan testas med hjälp av dessa instanser. Minst ett av objekten ska skapas genom att fråga användaren efter data. Välj själv om du vill använda dig av klassen BufferedReader eller om du använder dig av dialogrutor. Övriga objekt kan du hårdkoda. Krav För att uppgiften skall betraktas som godkänd krävs förutom ovan nämnda detaljer även att de krav som ställdes i uppgift 2 uppfylls. Dessutom ska du generera dokumentation för Publisher och CD med hjälp av verktyget javadoc. Robert Jonsson Sida 5