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



Relevanta dokument
Malmö högskola 2008/2009 CTS

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

Tentamen. Lösningsförslag

Laboration A Objektsamlingar

Laboration 13, Arrayer och objekt

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

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.

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

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

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

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

Laboration 1 - Grunderna för OOP i Java

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

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

JAVAUTVECKLING LEKTION 11

Lösningsförslag övning 2.

TENTAMEN OOP

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Tentamen. Grundläggande programmering i Java A 5p, DTAA

Laboration 16. Uppgift 1

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

Del A (obligatorisk för alla)

OOP Objekt-orienterad programmering

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

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

DD1342 Programkonstruktion för F1,

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

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

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

Chapter 4: Writing Classes/ Att skriva egna klasser.

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

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

Institutionen för TENTAMEN CTH VT-15 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

Tentamen i Grundläggande programmering STS, åk 1 fredag

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

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

Laboration 3. Uppgift 1

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

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.

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

OOP Objekt-orienterad programmering

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

TENTAMEN OOP

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

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

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

Objektorienterad programmering i Java

Tentamen i Programmeringsteknik I

2 b) Följande finns definierat: import java.awt.*; public class Uppgift1b public static void main(string[] mupp) Color färg = Color.blue; Bil[] bilar

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

Föreläsningsmaterial (Arv) Skrivet av Andreas Lund

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

LÖSNINGSFÖRSLAG TENTAMEN

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

DAT043 Objektorienterad Programmering

Instuderingsfrågor, del D

2 b) Bodega bodegan = new Bodega(); double moms = 0.235; String namn = "Vargtass"; System.out.println(namn + " " + moms + bodegan.ändra(moms, namn); S

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

Tentamen OOP

PROGRAMMERING-Java TENTAMINA

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

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

Tentamen i Programmeringsteknik I,, KandMa/Fy,

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Laboration 24 Databasen MySQL och java

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009

Tentamen i Objektorienterad programmering

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Föreläsning 3-4 Innehåll

Objektorienterad programmering D2

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

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Tentamen, EDAA20/EDA501 Programmering

Malmö högskola 2012/2013 Teknik och samhälle

Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

Föreläsning 8: Exempel och problemlösning

Malmö högskola 2008/2009 CTS

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

Föreläsning 12: Exempel och problemlösning

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

TENTAMEN OOP

Tentamen, EDAA10 Programmering i Java

Del A (obligatorisk för alla)

SI-pass 4. Johan Brook och Jesper Persson. 25 september Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

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

Institutionen för TENTAMEN CTH HT-15 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Tentamen i Programmeringsteknik I

Tentamen, EDA501 Programmering M L TM W K V

Objektorienterad programmering i Java I

Mer om klasser och objekt

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Att använda Java SE JDK 6

Föreläsning 5-6 Innehåll

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Transkript:

Laboration 8 Avsikten med denna laboration är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom skapa större program. Java är ett programmeringspråk som understödjer den objektorienterade programmeringsstilen. Skapa paketet laboration8 innan du fortsätter på denna laboration. Uppgift 1a Du ska skapa en klass Anstalld. Klassdiagrammet till höger beskriver vad den första versionen av Anstalld ska innehålla. Diagrammet visar: Klassens namn Klassens attribut (instansvariabler). Minus-tecknet före namnet anger att synligheten ska vara private. Klassens metoder (instansmetoder). Plus-tecknet före namnet anger att metoden ska vara public. En anställd har tre egenskaper (attribut): namn, arbetsgivare och lön. namn och arbetsgivare är av typen String och lön av typen double. Attributen ska ha modifieraren private. En deklaration av attributet namn ser ut så här: private String namn; Lägg till detta och de övriga två attributen i klassen. Anstalld - namn : String - arbetsgivare : String - lön : double + setnamn(string) + setarbetsgivare(string) + setlön(double) + getnamn() : String + getarbetsgivare() : String + getlön() : String : Då attributen är deklararade med modifieraren private så kan bara metoder i klassen Anstalld komma åt värdet. Om man vill att andra klasser ska kunna påverka eller se attributensvärde så kan man ha get-metoder och set-metoder. En set-metod för attributet namn ser ut så här: public void setnamn(string n){ namn=n; En get-metod retunerar ett attributsvärde. En get-metod för attributets namn ser ut så här: public String getnamn(){ return namn; Skriv set-metoder och get-metoder till alla attribut så att du kan testa klassen Anstalld med nedanstående testprogram. DA129A, Programmering 1 1

Testprogram // Den första anställda skapas Anstalld a1=new Anstalld(); a1.setnamn("anna Olsson"); a1.setarbetsgivare("eriksson"); a1.setlön(25700); // Den andra anställda skapas Anstalld a2=new Anstalld(); a2.setnamn("pontus Persson"); a2.setarbetsgivare("malmö högskola"); a2.setlön(23900); //De anställda skrivs ut System.out.println(); System.out.println(a1.getNamn()+ " har anställning hos " + a1.getarbetsgivare() + " med lönen " + a1.getlön() + "."); System.out.println(); System.out.println(a2.getNamn()+ " har anställning hos " + a2.getarbetsgivare() + " med lönen " + a2.getlön() + "."); Körresultat Anna Olsson har anställning hos Eriksson med lönen 25700.0. Pontus Persson har anställning hos Malmö högskola med lönen 23900.0. Uppgift 1b Skapa en metod tostring i din klass Anstalld med metodhuvudet: return ""; // Ersätt "" med en vettig sträng Denna metod returnerar ett värde av typen String, vilket innebär att det i metodkroppen måste finnas en rad som ser ut på följande sätt: return någon sträng ; Då du gör anropet System.out.println(a1.toString()); ska utskriften se ut så här: Anna Olsson har anställning hos Eriksson med lönen 25700.0. Ändra i testprogrammet för att testa din tostring-metod. Uppgift 2 Du ska skriva klassen Bostad vilken ska representera en bostad. Viktiga egenskaper i klassen är bostadsyta och antalet rum. Klassdiagrammet till höger beskriver de instansvariabler och metoder (instansmetoder) som ska ingå i klassen. Kortfattat är det dessa instansvariabler och metoder som ska ingå i klassen: Instansvariabler: private double bostadsyta; private int antalrum; Metoder: public void setbostadsyta(double yta) public void setantalrum(int antal) public double getbostadsyta() Bostad - bostadsyta:double - antalrum:int + setbostadsyta(double) + setantalrum(int) + getbostadsyta():double + getantalrum():int + tostring():string - private + public 2

public int getantalrum() public String tostring() Nedan ser du ett testprogram och körresultatet av programmet. Testprogram Bostad bostad1 = new Bostad(); Bostad bostad2 = new Bostad(); bostad1.setbostadsyta(55); bostad1.setantalrum(2); bostad2.setbostadsyta(108.6); bostad2.setantalrum(4); System.out.println(bostad1.toString()); System.out.println("Yta: " + bostad2.getbostadsyta() + " m2" + " Antal rum: " + bostad2.getantalrum()); Körresultat Bostad med ytan 55.0 m2 och 2 rum. Yta: 108.6 m2 Antal rum: 4 Uppgift 3 Du ska skriva klassen Vara vilken ska representera en vara i en affär. Viktiga egenskaper i klassen är varans namn, varans pris och antalet exemplar i affären. Klassdiagrammet till höger beskriver de instansvariabler och metoder (instansmetoder) som ska ingå i klassen. Nedan ser du ett testprogram och körresultatet av programmet. Testprogram Vara envara = new Vara(); envara.setnamn("standardmjölk"); envara.setpris(8.20); envara.setantal(120); Output.meddelande(enVara.toString()); envara.setnamn("7-växlad Crescent"); Output.meddelande(enVara.getNamn() + ": Pris=" + Output.format(enVara.getPris(),0,2) + " kr Antal=" + envara.getantal()); Körresultat Vara - namn : String - pris : double - antal : int + setnamn(string) + setpris(double) + setantal(int) + getnamn() : String + getpris() : double + getantal() : int + tostring():string 3

Uppgift 4 Skapa klassen Bok som beskriver en bok. Vilka attribut ska finnas? Vilka metoder? 1. Konstruera ett klassdiagram som visar vad klassen ska innehålla. 2. Skriv sedan klassen.bok. 3. Gör slutligen en testklass som testar din Bok-klass med ett antal olika böcker. Uppgift 5 Nu ska du lägga till ett par metoder i klassen Anstalld. Gör en metod som beräknar årslönen för en anställd med följande metodhuvud public double årslön() Metoden ska alltså returnera en double. Returvärdet ska vara den anställdes årslön. Ändra i testprogrammet (Uppgift 1) för att testa din årslön-metod. Gör en metod som kontrollerar om två anställda har samma arbetsgivare: public boolean sammaarbetsgivare(anstalld a) Metoden ska returnera true om attributet arbetsgivare är det samma som a s arbetsgivare. Du ska använda metoden equals, som finns i klassen String, för att jämföra strängarna. String s1, s2; : if(s1.equals(s2)) { // s1.equals(s2) är true om strängarna samma, annars false : Ändra i testprogrammet (Uppgift 1) för att testa din sammaarbetsgivare-metod. 4

Lösningsförslag public class Anstalld { private String namn; private String arbetsgivare; private double lön; public void setnamn(string n) { namn = n; public void setarbetsgivare(string a) { arbetsgivare = a; public void setlön(double l) { lön = l; public String getnamn() { return namn; public String getarbetsgivare() { return arbetsgivare; public double getlön() { return lön; public double årslön() { return 12*lön; public boolean sammaarbetsgivare(anstalld a) { return arbetsgivare.equals(a.getarbetsgivare()); ----------------------------------------------------------------- public class Bostad { private double bostadsyta; private int antalrum; public void setbostadsyta(double yta) { bostadsyta = yta; public void setantalrum(int antal) { antalrum = antal; public double getbostadsyta() { return bostadsyta; 5

public int getantalrum() { return antalrum; return "Bostad med ytan " + bostadsyta + " m2 och " + antalrum + " rum."; public static void main(string[] args) { Bostad bostad1 = new Bostad(); Bostad bostad2 = new Bostad(); bostad1.setbostadsyta(55); bostad1.setantalrum(2); bostad2.setbostadsyta(108.6); bostad2.setantalrum(4); System.out.println(bostad1.toString()); System.out.println("Yta: " + bostad2.getbostadsyta() + " m2" + " Antal rum: " + bostad2.getantalrum()); ----------------------------------------------------------------- import extra.*; public class Vara { private String namn; private double pris; private int antal; public void setnamn(string varunamn) { namn = varunamn; public void setpris(double varupris) { pris = varupris; public void setantal(int antalvaror) { antal = antalvaror; public String getnamn() { return namn; public double getpris() { return pris; public int getantal() { return antal; return namn + ": Pris=" + Output.format(pris,0,2) + " kr Antal=" + antal; public static void main(string[] args) { Vara envara = new Vara(); 6

envara.setnamn("standardmjölk"); envara.setpris(8.20); envara.setantal(120); Output.meddelande(enVara.toString()); envara.setnamn("7-växlad Crescent"); Output.meddelande(enVara.getNamn() + ": Pris=" + Output.format(enVara.getPris(), 0,2) + " kr Antal=" + envara.getantal()); ----------------------------------------------------------------- public class Bok { private String titel; private String författare; private String kategori; private int antal; public void settitel(string boktitel) { titel = boktitel; public void setförfattare(string författare) { this.författare = författare; // Nästa föreläsning public void setkategori(string område) { kategori = område; public void setantal(int antalböcker) { antal = antalböcker; public String gettitel() { return titel; public String getförfattare() { return författare; public String getkategori() { return kategori; public int getantal() { return antal; return "Titel: " + titel + " Författare: " + författare + " Kategori" + kategori + " Antal: " + antal; 7