Malmö högskola 2007/2008 Teknik och samhälle. public String tostring() { return "Media: ID = " + this.id + ", Titel = " + this.

Storlek: px
Starta visningen från sidan:

Download "Malmö högskola 2007/2008 Teknik och samhälle. public String tostring() { return "Media: ID = " + this.id + ", Titel = " + this."

Transkript

1 Laboration 16 Grundläggande uppgifter Uppgift 1 Klassen Media är given: package laboration16; public class Media { private long id; private String titel; public long getid() { return id; public void setid( long id ) { this.id = id; Media id : long titel : String +getid() : long +setid( long ) +gettitel() : String +settitel( String ) +tostring() : String public String gettitel() { return titel; public void settitel(string titel) { this.titel = titel; public String tostring() { return "Media: ID = " + this.id + ", Titel = " + this.titel; Testkör klassen med nedanstående instruktioner: Media media = new Media(); media.setid( ); media.settitel( "En fantastisk värld" ); String res = media.gettitel() + " är ett '" + media.getclass().getname() + "'-objekt" + "\n" + "tostring-metoden: " + media.tostring(); javax.swing.joptionpane.showmessagedialog( null, res ); Av testprogrammet och körresultatet kan du se att det finns en metod, getclass(), vilken anropas av Media-objektet. getclass-metoden ärvs från klassen Object och som returnerar objektets klass-tillhörighet (som ett Class-objekt). Med metoden getname() erhåller man en sträng med klassens namn. Class cls = media.getclass(); String classname = cls.getname(); // classname = laboration16.media DA129A Programmering 1 1

2 Uppgift 1b Skriv klassen Bok vilken ska ärva klassen Media: Media package laboration16; public class Bok extends Media { Bok Testkör klassen Bok med samma instruktioner som i Uppgift 1a men ändra i första raden Bok media = new Bok(); media.setid( ); media.settitel( "En fantastisk värld" ); String res = media.gettitel() + " är ett '" + media.getclass().getname() + "'-objekt" + "\n" + "tostring-metoden: " + media.tostring(); javax.swing.joptionpane.showmessagedialog( null, res ); Programmet ger samma körresultat som i Uppgift 1a. Det är endast objektets typ (klassens namn) som ändrats, från laboration16.media till laboration16.bok. Klassen Bok har ärvt metoderna setid, getid, settitel, gettitel och tostring. Metoderna anropas i testprogrammet. 2

3 Uppgift 1c Nu ska vi specialisera klassen Bok så att den skiljer sig från Media. Lägg till instansvariabeln författare i klassen Bok: private String författare; Lägg till metoderna getförfattare() : String och setförfattare( String ) i klassen Bok. Lägg till metoden tostring() : String i klassen Bok. Metoden ska returnerar en sträng på formen: "TITEL skriven av FÖRFATTARE" Testkör klassen Bok med nedanstående instruktioner: Bok media = new Bok(); media.setid( ); media.settitel( "En fantastisk värld" ); media.setförfattare( "Alice Green" ); String res = media.gettitel() + " av " + media.getförfattare() + "\n" + "tostring-metoden: " + media.tostring(); javax.swing.joptionpane.showmessagedialog( null, res ); Media id : long titel : String +getid() : long +setid( long ) +gettitel() : String +settitel( String ) +tostring() : String Bok författare : String +getförfattare() : String +setförfattare( String ) +tostring() : String I programmet används: Ärvda metoder från klassen Media (setid, settitel, gettitel) Metoder implementerade i klassen Bok (setförfattare, getförfattare, tostring). Som du säkert märkte så användes "korrekt" version av tostring-metoden, nämligen den i klassen Bok. Om du avmarkerar metoden tostring i klassen Bok, kompilerar klassen Bok och testkör övanstående kod på nytt så ser du att tostring-metoden i klassen Media används. 3

4 Uppgift 1d När man ärver en klass så är klassen som regel färdigskriven och testad. Men av pedagogiska skäl ska du nu ändra i klassen Media för att se följderna av ändringen. Lägg till en konstruktor i klassen Media: public Media( long id, String titel ) { // Lägg till kod Kompilera klassen Media och testkör klassen med nedanstående kod: Media media = new Media( , "En fantastisk värld" ); String res = media.gettitel() + " är ett '" + media.getclass().getname() + "'-objekt" + "\n" + "tostring-metoden: " + media.tostring(); javax.swing.joptionpane.showmessagedialog( null, res ); Körresultatet är samma som i Uppgift 1a. Enda skillnaden är ju att instansvariablerna får sina värde redan vid konstruktionen av Media-objektet. Gå till klassen Bok i NetBeans. Nu är det plötsligt en röd markering i kanten när konstruktorn lades till i klassen Media så blev det ett fel i klassen Bok. Vad beror detta på? Innan du la till en konstruktor i klassen Media så lade kompilatorn till en default-konstruktor i klassen: public Media() { På samma sätt lägger kompilatorn till en default-konstruktor i klassen Bok. Och kompilatorn placerar dessutom en instruktion i konstruktorn, ett anrop till en konstruktor i superklassen. En konstruktor i superklassen anropas ju alltid när ett objekt konstrueras. public Bok() { super(); // anrop av Media(); Innan du la till en konstruktor i Media-klassen så fanns det en konstruktor utan parametrar i Media-klassen (default-konstruktorn). Det finns det inte längre och klassen Bok är inte längre kompilerbar. För att åtgärda detta måste du lägga till en lämplig konstruktor i klassen Bok, t.ex.: public Bok( long id, String titel, String författare ) { super( id, titel ); // Anrop av Media( long, String ); this.författare = författare; Lägg till ovanstående konstruktor i klassen Bok, kompilera klassen Bok och testkör följande testprogram: Bok media = new Bok( , "En fantastisk värld", "Alice Green" ); String res = media.gettitel() + " av " + media.getförfattare() + "\n" + "tostring-metoden: " + media.tostring(); javax.swing.joptionpane.showmessagedialog( null, res ); Körresultatet ska vara samma som i uppgift 1c. 4

5 Uppgift 1e Skriv klassen CD vilken ska ärva klassen Media. Klassen CD ska ha två instansvariabler: artist av typen String. melodier av typen String[]. Klassen CD ska ha en konstruktor: public CD( long id, String titel, String artist, String[] melodier ) { super( id, titel ); this.artist = artist; this.melodier = melodier; Klassen ska ha följande metoder: public void setartist( String artist ) public String getartist() public void setmelodier( String[] melodier ) public String[] getmelodier() Bok Media public String tostring() vilken ska skriva ut information om en CD på följande sätt: Artist: Ulrika Olsson Album: Sommar Melodier: 1. a 2. b 3. c 4. d 5. e osv. det är lämpligt att börja med att bygga listan med melodier och därefter hela strängen som ska returneras, ungefär: String lista = "", res; for-loop för samtliga melodier lista += melodi + ny rad-tecken res = + lista; return res; CD artist : String melodier : String[] +getartist() : string +setartist( String ) +getmelodier() : String[] +setmelodier( String[] ) +tostring() : String Testkör klassen CD med följande testprogram: String[] mel = { "Mel 1", "Melodi 2", "Melodi 3", "Mel 4" ; CD cd = new CD( , "TITEL","ARTIST", mel ); System.out.println( "----- Test av get-metoder -----" ); System.out.println( cd.getid() + ", " + cd.getartist() + ", " + cd.gettitel() ); System.out.println( "----- Test av tostring -----" ); System.out.println( cd.tostring() ); System.out.println( "----- Test av set-metoder -----" ); cd.setartist( "Ulf Lundell" ); cd.settitel( "Vargmåne" ); cd.setmelodier( new String[]{ "M1", "M2", "M3", "M4", "M5", "M6" ); System.out.println( cd.tostring() ); 5

6 Körresultat av testprogrammet på föregående sida: Test av get-metoder , ARTIST, TITEL Test av tostring Artist: ARTIST Album: TITEL 1. Mel 1 2. Melodi 2 3. Melodi 3 4. Mel Test av set-metoder Artist: Ulf Lundell Album: Vargmåne 1. M1 2. M2 3. M3 4. M4 5. M5 6. M6 6

7 Fördjupande uppgifter Du ska skapa en klasshierarki som ser ut som figuren till höger: Fordon Uppgift 2a Skriv klassen Fordon enligt beskrivningen nedan. Ägaren är av typen String. Klassen Fordon instansvariabel: ägare metoder: konstruktorer setägare getägare tostring Skapa sedan en testklass med följande main-metod: public static void main(string[] args){ Fordon f1= new Fordon(); Fordon f2= new Fordon("Lina Nilsson"); System.out.println(f1); System.out.println(f2); f1.setägare("ola Torstensson"); System.out.println(f1.getÄgare()); Körning ger följande utskrift: Ägare: Okänd ägare Ägare: Lina Nilsson Ola Torstensson Bil MotorFordon Motorcykel 7

8 Uppgift 2b Skriv klassen MotorFordon enligt beskrivningen nedan. Hästkrafter är av typen int. Klassen MotorFordon: är subklass till kassen Fordon (ärver från Fordon) instansvariabler: hk (hästkraft) metoder: konstruktorer gethk sethk tostring I tostring-metoden ska ett anrop till tostring-metoden i superklassen Fordon göras: super.tostring() Skapa en testklass med följande main-metod: public static void main(string[] args){ MotorFordon m1= new MotorFordon(); MotorFordon m2= new MotorFordon("Lina Nilsson",100); System.out.println(m1); System.out.println(m2); m1.setägare("ola Torstensson"); m1.sethk(200); System.out.println(m1); Körning ger följande utskrift: Ägare: Okänd ägare Motorns hästkrafter: 0 Ägare: Lina Nilsson Motorns hästkrafter: 100 Ägare: Ola Torstensson Motorns hästkrafter: 200 Uppgift 2c Skriv klasserna Bil och Motorcykel enligt nedanstående beskrivningar: Klassen Bil är subklass till klassen MotorFordon (ärver från MotorFordon) instansvariabler: regnr (registreringsnummer) metoder: konstruktorer getregnr setregnr tostring 8

9 Klassen Motorcykel är subklass till klassen MotorFordon (ärver från MotorFordon) instansvariabler: regnr (registreringsnummer) metoder: konstruktorer getregnr setregnr tostring I tostring-metoden ska ett anrop till tostring-metoden i superklassen MotorFordon göras: super.tostring() Gör en testklass som har följande main-metod: public static void main(string[] args) { Fordon[] fordonslista= new Fordon[3]; fordonslista[0]=new Bil("Doris Bengtsson",80,"FGT 450"); fordonslista[1]=new Motorcykel("Klas Bengtsson",70,"KKI 333"); Bil b=new Bil(); b.setägare("fredrik Hansson"); b.sethk(100); b.setregnr("hhh 778"); fordonslista[2]=b; for (int i=0;i<fordonslista.length;i++){ System.out.println(fordonslista[i].getClass()); System.out.println(fordonslista[i]); System.out.println(); Körning ger följande utskrift: class Bil Ägare: Doris Bengtsson Motorns hästkrafter: 80 Registeringsnummer: FGT 450 class Motorcykel Ägare: Klas Bengtsson Motorns hästkrafter: 70 Registeringsnummer: KKI 333 class Bil Ägare: Fredrik Hansson Motorns hästkrafter: 100 Registeringsnummer: HHH 778 Uppgift 2d Skapa ny klass Cykel med en ägare och ett antal växlar. Vad är det lämpligt att Cykel ärver ifrån? Gör lämpliga metoder åt den nya klassen. Testa denna klass genom att göra en testklass med en main-metod. 9

10 Extrauppgifter Uppgift 3 Lägg till metoden public int compareto(object o) i klassen MotorFordon. Anropet b1.compareto(b2) ska retunera 1 om b1 har en motor med fler hästkrafter än b2. -1 om b2 har en motor med fler hästkrafter än b1 och 0 om deras motoerer har lika många hästkrafter. Använd denna metod för att skapa en metod i en testklass som utifrån en lista av MotorFordon och ett intervall returnerar en ny lista med de MotorFordon som har motorer med antalet hästkrafter inom intervallet. Metodhuvudet ska se ut så här: public MotorFordon[] inomintervallet(motorfordon[] inlista,int min,int max) Om det inte finns några MotorFordon inom intervallet retuneras en lista med längden 0. Testa din metod. Uppgift 4 Lägg till metoden public boolean equals(object o) hos alla klasserna i klassheirakin. Använd denna metod för att söka i en lista över olika fordon och se om ett fordon finns i listan. Du ska skapa en testklass som har en lista av fordon bestående av alla typer av fordon d.v.s. minst fem stycken. Du ska sedan låta användaren mata in en beskrivning på ett fordon och skapa ett objekt utifrån beskrivningen. Sedan ska du undersöka om fordonet finns i listan med hjälp av metoden equals. Ett krav för att två objekt ska vara lika det är att de är av samma typ. Ett sätt att kontrollera om två objekt tillhör samma klass är att använda getclass-metoden på båda objekten och sedan jämföra class-objekten med varandra (med equals-metoden). Ex. Class cls1 = this.getclass(); Class cls2 = o.getclass(); if( cls1.equals(cls2) ) {... eller if( this.getclass().equals(o.getclass()) ) {... returnerar true om this och o refererar till samma typ av objekt. Det kan vara lämpligt att kolla detta innan man försöker omvandla objektet till en mer specialiserad typ. 10

11 Förslag till lösningar Uppgift 1c public class Bok extends Media { private String författare; public void setförfattare( String författare ) { this.författare = författare; public String getförfattare() { return this.författare; public String tostring() { return gettitel() + " skriven av " + this.författare; Uppgift 1d public class Media { private long id; private String titel; public Media( long id, String titel ) { this.id = id; this.titel = titel; : public class Bok extends Media { private String författare; public Bok( long id, String titel, String författare ) { super( id, titel ); this.författare = författare; : 11

12 Uppgift 1e public class CD extends Media { private String artist; private String[] melodier; public CD( long id, String titel, String artist, String[] melodier ) { super( id, titel ); this.setartist(artist); this.setmelodier(melodier); public String getartist() { return artist; public void setartist(string artist) { this.artist = artist; public String[] getmelodier() { return melodier; public void setmelodier(string[] melodier) { this.melodier = melodier; public String tostring() { String res = ""; for( int i = 0; i < melodier.length; i++ ) { res += ( i + 1 ) + ". " + melodier[ i ] + "\n"; return "Artist: " + this.artist + "\nalbum: " + gettitel() + "\n" + res; 12

13 Uppgift 2 4 public class Fordon { private String ägare; public Fordon() { this("okänd ägare"); public Fordon(String ägare) { this.ägare = ägare; public void setägare(string ägare) { this.ägare = ägare; public String getägare() { return ägare; public String tostring() { return "Ägare: " + ägare; // Uppgift 4 public boolean equals(object o) { boolean lika = getclass().equals(o.getclass()); if(lika) { Fordon f = (Fordon) o; lika = ägare.equals(f.getägare()); return lika; public class MotorFordon extends Fordon { private int hk; public MotorFordon() { public MotorFordon(String ägare, int hk) { super(ägare); this.hk = hk; public void sethk(int hk) { this.hk = hk; public int gethk() { return hk; public String tostring() { return super.tostring() + " Motorns hästkrafter: " + hk; // Uppgift 4 public boolean equals(object o) { boolean lika = getclass().equals(o.getclass()); if(lika) { 13

14 MotorFordon m = (MotorFordon) o; lika = (hk == m.gethk()) && (super.equals(o)); return lika; // Uppgift 3 public int compareto(object o) { MotorFordon m = (MotorFordon) o; if(hk<m.gethk()) return -1; else if(hk>m.gethk()) return 1; else return 0; // Uppgift 3 public static MotorFordon[] inomintervallet(motorfordon[] inlista, int min, int max) { int antal = 0; MotorFordon[] res; for(int i=0; i<inlista.length; i++) if( (inlista[i].gethk()>=min) && (inlista[i].gethk()<=max) ) antal++; res = new MotorFordon[antal]; // fungerar även då antal==0 for(int i=inlista.length-1; i>=0; i--) if( (inlista[i].gethk()>=min) && (inlista[i].gethk()<=max) ) { antal--; res[antal] = inlista[i]; return res; // Test av Uppgift 3 public static void main(string[] args){ MotorFordon[] fordon = {new MotorFordon("A",100), new MotorFordon("B",150),new MotorFordon("C",80), new MotorFordon("D",100),new MotorFordon("E",110); MotorFordon[] resultat = inomintervallet(fordon, 95, 110); for(int i=0; i<resultat.length; i++) System.out.println(resultat[i]); public class Bil extends MotorFordon { private String regnr; public Bil() { regnr=""; public Bil(String ägare, int hk, String regnr) { super(ägare, hk); this.regnr = regnr; public void setregnr(string regnr) { this.regnr = regnr; public String getregnr() { 14

15 return regnr; public String tostring() { return super.tostring() + " Registreringsnummer: " + regnr; // Uppgift 4 public boolean equals(object o) { boolean lika = getclass().equals(o.getclass()); if(lika) { Bil b = (Bil) o; lika = regnr.equals(b.getregnr()); // Registreringsnummer unika return lika; public class Motorcykel extends MotorFordon { private String regnr; public Motorcykel() { regnr=""; public Motorcykel(String ägare, int hk, String regnr) { super(ägare, hk); this.regnr = regnr; public void setregnr(string regnr) { this.regnr = regnr; public String getregnr() { return regnr; public String tostring() { return super.tostring() + " Registreringsnummer: " + regnr; // Uppgift 4 public boolean equals(object o) { boolean lika = getclass().equals(o.getclass()); if(lika) { Motorcykel m = (Motorcykel) o; lika = regnr.equals(m.getregnr()); // Registreringsnummer unika return lika; public class Cykel extends Fordon { private int växlar=1; /** Creates a new instance of Cykel */ public Cykel() { public Cykel(String ägare, int växlar) { super(ägare); 15

16 this.växlar = växlar; public void setväxlar(int växlar) { this.växlar = växlar; public int getväxlar() { return växlar; public String tostring() { return super.tostring() + " Antal växlar: " + växlar; // Uppgift 4 public boolean equals(object o) { boolean lika = getclass().equals(o.getclass()); if(lika) { Cykel c = (Cykel) o; lika = (växlar == c.getväxlar()) && (super.equals(o)); return lika; public static void main(string[] args){ Cykel c1= new Cykel(); Cykel c2= new Cykel("Sven Jakobi",21); System.out.println(c1); System.out.println(c2); c1.setägare("inga Bok"); c1.setväxlar(3); System.out.println(c1.getÄgare() + " " + c1.getväxlar() + " växlar"); 16

Laboration 16. Uppgift 1

Laboration 16. Uppgift 1 Laboration 16 Avsikt Avsikten med denna laboration är att öva på arv i objektorienterad programmering. Du ska skapa en klasshierarki som ser ut som figuren till höger: Fordon MotorFordon Bil Motorcykel

Läs mer

Laboration 3. Uppgift 1

Laboration 3. Uppgift 1 Laboration 3 Avsikt Avsikten med denna laboration är att öva på arv i objektorienterad programmering. Du ska skapa en klasshierarki som ser ut som figuren till höger: Vehicle MotorVehicle Car Motorcycle

Läs mer

Malmö högskola 2008/2009 CTS

Malmö högskola 2008/2009 CTS Laboration 8 Avsikten med laborationen ä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

Läs mer

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

Malmö högskola 2007/2008 Teknik och samhälle 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

Läs mer

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

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten? Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2014-01-19 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

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

Malmö högskola 2007/2008 Teknik och samhälle Laboration 9 Avsikten med denna laboration är att du ska jobba vidare med klasser. Uppgifterna går ut på att skriva metoder och att skriva konstruktorer. Laborationen bygger vidare på laboration 8. Skapa

Läs mer

Laboration 1 - Grunderna för OOP i Java

Laboration 1 - Grunderna för OOP i Java Uppdaterad: 2006-08-31 Laboration 1 - Grunderna för OOP i Java Inledning Laborationen går ut på att lära sig grunderna för objektorienterad programmering, samt motsvarande språkkonstruktioner i Java. Labben

Läs mer

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.

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. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

Laboration A Objektsamlingar

Laboration A Objektsamlingar Laboration A Objektsamlingar Avsikten med laborationen är att du ska träna på att använda ett par objektsamlingar. Uppgift 1 Titta genom föreläsningsunderlaget DA129AFAHT07.pdf och testkör exemplen (se

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 14 I torsdags & fredags: arrayer Deklaration, initiering, åtkomst Arrayer är referenser Arrayer som parametrar och returvärden Exempel

Läs mer

Laboration 13, Arrayer och objekt

Laboration 13, Arrayer och objekt Laboration 13, Arrayer och objekt Avsikten med denna laboration är att du ska träna på att använda arrayer. Skapa paketet laboration13 i ditt laborationsprojekt innan du fortsätter med laborationen. Uppgift

Läs mer

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. Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok 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

Läs mer

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander F8 - Arv ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Arv och subklasser Klasser innehåller attribut och beteenden En subklass ärver dessa från föräldern Detta ger: Återanvänd kod

Läs mer

TUTORIAL: KLASSER & OBJEKT

TUTORIAL: KLASSER & OBJEKT TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan

Läs mer

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av

Läs mer

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

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det

Läs mer

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

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer. Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language

Läs mer

Klasshierarkier. Klasser kan byggas på redan definierade klasser

Klasshierarkier. Klasser kan byggas på redan definierade klasser Klasshierarkier Klasser kan byggas på redan definierade klasser på två sätt: Klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: klassen partikel består av ett antal attribut av typen

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser Föreläsning 8 Arv och abstrakta klasser Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen (extends) Den nya klassen behåller alla egenskaper som den gamla

Läs mer

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

SI-pass 4. Johan Brook och Jesper Persson. 25 september 2012. Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner. SI-pass 4 Johan Brook och Jesper Persson 25 september 2012 1. Sant eller falskt? Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner. Interfaces i Java kan innehålla privata

Läs mer

Föreläsning 9: Arv och UML

Föreläsning 9: Arv och UML TDA 545: Objektorienterad programmering Föreläsning 9: Arv och UML Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Quiz Vad betyder static? Varför skriver man get-metoder? public int getpos() { return pos;

Läs mer

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... } En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class

Läs mer

Konstruktion av klasser med klasser

Konstruktion av klasser med klasser Konstruktion av klasser med klasser Klasser kan byggas på redan denierade klasser genom att klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: Klassen PairOfDice har två attribut attribut

Läs mer

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Konstruktorer Statiska metoder & attribut

Läs mer

Klasshierarkier - repetition

Klasshierarkier - repetition Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet

Läs mer

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

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private. Tentamen Programmeringsteknik I 2013-06-14 med lösningar 1. Svara kortfattat på följande: a) Vad är en instansvariabel? Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F9:1 OOP Objekt-orienterad programmering Föreläsning 9 Arv och klasshierarkier Polymorfism OOP F9:2 Djur - String namn - int vikt + String getnamn() + int getvikt() + void ökavikt(int x) Ko - int mjölkvolym

Läs mer

Tentamen. Grundläggande programmering i Java A 5p, DTAA32 2003-03-21

Tentamen. Grundläggande programmering i Java A 5p, DTAA32 2003-03-21 Mitthögskolan ITM Institutionen för Informationsteknologi och medier. Bertil Danielsson 060-14 86 82 Jan-Erik Jonsson 060-14 87 90 Tentamen i Java A Sida 1/6 Tentamen Grundläggande programmering i Java

Läs mer

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

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning 2I1049 Föreläsning 5 Objektorienterad programmering i Java KTH-MI Peter Mozelius Objektorientering Världar uppbyggda av objekt Inte helt olikt vår egen värld Ett sätt att modularisera våra system Objekten

Läs mer

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

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1) Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet

Läs mer

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

Är en-relation. Har en-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde Föreläsning 7 "Har en"-relation Arv "Har en" "Är en" Superklassen Object Överskuggning Fordonsexempel Seminarium 2 Relevanta uppgifter Uppgift 31 I exemplet Boll från förra föreläsningen gällde följande

Läs mer

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.

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. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

Arv (Inheritance) Multipelt arv finns i verkligheten. Överskuggning, metodbindning. Läsanvisning: ! Arv! Object, instanceof! Relationer!

Arv (Inheritance) Multipelt arv finns i verkligheten. Överskuggning, metodbindning. Läsanvisning: ! Arv! Object, instanceof! Relationer! itop F8 Arv (Inheritance) Läsanvisning: arv: i kap 10, exceptions: i kap 15 mer kommer sen UML: tas bara upp i OH Object Kalle Student Person Graduate Lärare! Arv! Object, instanceof! Relationer! UML Nästa

Läs mer

Del A (obligatorisk för alla)

Del A (obligatorisk för alla) Del A (obligatorisk för alla) A1. Ringa in rätt svarsalternativ eller skriv svar i ruta om sådan a) Satsen double x = (int)(1 + 3/2.0) + 3.; resulterar i b) Satsen int x = (int)(1 + 3/2.0) + 3.; resulterar

Läs mer

Laboration 3, uppgift En klass för en räknare

Laboration 3, uppgift En klass för en räknare Laboration 3, uppgift 1 3.1 En klass för en räknare Ursprungligen skriven av Erland Holmström. Magnus Myreen har uppdaterat vissa delar. Hösten 2014 Anvisningar: Programmet skall utformas enligt de principer

Läs mer

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

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering

Läs mer

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och Innehåll u OOP snabbintroduktion u Datatyper u Uttryck u Satser u Arv (intro) u Programvaruutveckling och programmering u Klassdesign och metodik (UML, CRC) u Arv, polymorfi och dynamisk bindning u Fält

Läs mer

Tentamen. Lösningsförslag

Tentamen. Lösningsförslag Sida 1/8 Tentamen Grundläggande programmering i Java A 5p, DTAA32 2002-03-22 Lösningsförslag Uppgift 1 ( 3p ) Utskriften blir: Skriv in ett tal 24 47 48 intal=471 Uppgift 2 ( 6p ) a.) b.) c.) d.) e.) falskt

Läs mer

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Konstruktorer Statiska metoder & attribut

Läs mer

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).

Läs mer

Objektorienterad programmering i Java I

Objektorienterad programmering i Java I Laboration 4 Objektorienterad programmering i Java I Uppgifter: 1 Beräknad tid: 6 9 timmar Att läsa: Kapitel 7, 8 (stränghantering, arrayer och Vector) Utdelat material (paket) Syfte: Att kunna använda

Läs mer

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. Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok 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

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public

Läs mer

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

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus. Fält av referenser Tanken med objekt är man kan bygga ihop olika sorts objekt till nya saker. Sålunda kan man exempelvis använda Bil och Trafikljus att konstruera ett Väg-objekt. Om Bil och Trafikljus

Läs mer

Föreläsning 13 Innehåll

Föreläsning 13 Innehåll Föreläsning 13 Innehåll Arv Repetition Om tentamen Datavetenskap (LTH) Föreläsning 13 HT 2017 1 / 32 Diskutera Här är början på klassen MemoryWindow som använts på en lab. Vad kan menas med extends SimpleWindow?

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2014-03-15 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

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

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta

Läs mer

TDDD78 Viktiga begrepp, del 2

TDDD78 Viktiga begrepp, del 2 jonas.kvarnstrom@liu.se 2015 TDDD78 Viktiga begrepp, del 2 Identitet och likhet Är likhet och identitet samma sak? Oj, vi har samma kläder på oss idag! Nej, men likadana! Besserwisser 3 Detta är två rutor

Läs mer

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

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 TDDE11, 725G90/1 Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Introduktion OOP Instanser, instansvariabler, instansmetoder

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F10:1 OOP Objekt-orienterad programmering Föreläsning 10 Mer om arv och klasshierarkier Interface Hierarkier - många nivåer OOP F10:2 Djur Rovdjur Hovdjur Fåglar Fiskar Björn Kattdjur Ko Lamm Hjort

Läs mer

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

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-06-11 Skrivtid: 08:00 13:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

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

Malmö högskola 2012/2013 Teknik och samhälle Laboration 5 Avsikten med laborationen är att du ska träna på att använda iterationer i dina program. I vanlig ordning placerar du dina lösningar i paketet laboration5. Uppgifterna är lätt matematiska

Läs mer

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

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 TDDE11, 725G90 Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Arv Polymorf UML (klassdiagram) 1 Arv Möt tre studenter

Läs mer

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller

Läs mer

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Sammanfattning och repetition utgående från typiska tentamensuppgifter (2 mars 2018 F6 1 ) Dagens föreläsning Sammanfattning och repetition utgående från typiska tentamensuppgifter (2 mars 2018 F6 2 ) A-fråga Hur många objekt skapas av nedanstående kod? World w = new World();

Läs mer

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

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-06-11 Skrivtid: 08:00 13:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

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

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp

Läs mer

Tentamen, EDA501 Programmering M L TM W K V

Tentamen, EDA501 Programmering M L TM W K V LUNDS TEKNISKA HÖGSKOLA 1(0) Institutionen för datavetenskap Tentamen, EDA501 Programmering M L TM W K V 2010 05 31, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt ger uppgifterna

Läs mer

Polymorfi. Objektorienterad och komponentbaserad programmering

Polymorfi. Objektorienterad och komponentbaserad programmering Polymorfi Objektorienterad och komponentbaserad programmering Polymorfi, mångtydighet Polymorfi innebär att en viss konstruktion kan exekveras på olika sätt Överlagring av metoder ger ett polymorft beteende

Läs mer

Del A (obligatorisk för alla)

Del A (obligatorisk för alla) Del A (obligatorisk för alla) A1. Koden följer garanterat namnkonventionerna. Ringa in rätta svar och lämna in tillsammans med dina övriga svar! a) Hur många objekt skapas av följande kod? World w = new

Läs mer

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

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering Programmeringsteknik för I1 Övning 2 Administrativt Övningsgrupp 2 (Sal E32/D32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kontrollera att ni har fått Lab2 inrapporterad

Läs mer

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

Kort om klasser och objekt En introduktion till GUI-programmering i Java Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

public och private Obs: private inte skyddar mot access från andra objekt i samma klass. public och private En metod som är public får anropas från alla metoder i alla klasser. Ett attribut som är public får avläsas och ändras från alla metoder i alla andra klasser. En metod som är private

Läs mer

Malmö högskola 2008/2009 CTS

Malmö högskola 2008/2009 CTS Laboration 5 Avsikten med laborationen är att du ska träna på att använda iterationer i dina program. I vanlig ordning placerar du dina lösningar i paketet laboration5. Uppgifterna är lätt matematiska

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

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

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 TDDE11, 725G90 Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Introduktion OOP Instanser, instansvariabler, instansmetoder

Läs mer

Interface. Interface. Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010

Interface. Interface. Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010 Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010 interface, motivation och bakgrund Antag att vi gör en generell listklass: public class List { protected static class ListNode { public

Läs mer

JAVA Mer om klasser och objektorientering

JAVA Mer om klasser och objektorientering JAVA Mer om klasser och objektorientering Begreppet package - paket Package används när man t ex vill skapa ett eget bibliotek med klasser. Sen är det då meningen att man ska importera detta paket i det

Läs mer

Modeller, Objekt och Klasser

Modeller, Objekt och Klasser Modeller, Objekt och Klasser Bildserie 3 Objekt Orienterad Programmering OO-programmering bygger på att vi som människor uppfattar tillvaron i termer av objekt - Bastu, pizza, öl,... Det borde vara lättare

Läs mer

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

Malmö högskola 2007/2008 Teknik och samhälle Laboration 6 Avsikten med denna laboration är att du ska träna på att använda iterationer i dina program. I vanlig ordning placerar du dina lösningar i paketet laboration6. Uppgifterna är lätt matematiska

Läs mer

LÖSNINGSFÖRSLAG TENTAMEN

LÖSNINGSFÖRSLAG TENTAMEN LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, KVÄLL (ITM - ÖSTERSUND) LÖRDAG 18 JANUARI, 2003, KL. 9-14 TID: 5 TIMMAR ANTAL UPPGIFTER: 9 MAX POÄNG: 45 BETYGSKALA: UNDERKÄND

Läs mer

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 Tentamen Programmeringsteknik I 2018-03-16 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

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

2203$( Föreläsning ii - Mer om Java bla this och konstruktorer. Exempel: lampa 2203$( Föreläsning ii - Mer om Java bla this och konstruktorer Av Björn Eiderbäck Email: bjorne@nada.kth.se Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: 7906277 previous next Exempel: lampa Light1 #

Läs mer

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes Idag statiska metoder och variabler private/public/protected final, abstrakta klasser, gränssnitt, delegering wrapper classes ett lite större exempel Objectorienterad programmering Sida 1 Vad vi vet om

Läs mer

Arv. Objektorienterad och komponentbaserad programmering

Arv. Objektorienterad och komponentbaserad programmering Arv Objektorienterad och komponentbaserad programmering Arv Regel nr 1: Ett objektorienterat språk ska tillåta inkapsling av data Regel nr 2: Ett objektorienterat språk ska tillåta arv Regel nr 3: Ett

Läs mer

Lösningsförslag till exempeltenta 2

Lösningsförslag till exempeltenta 2 Lösningsförslag till exempeltenta 2 1 1. Beskriv hur man kan söka igenom en tvådimensionell array. Beskriv pseudokoden och förklara så klart som möjligt hur den fungerar. Lösning: Se laboration 3. - Beskriv

Läs mer

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

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/3 2014 Innehåll Kursöversikt Javarepetition/Javaintroduktion UML - klassdiagram-introduktion i anslutning till Java-exemplen Kursmål,

Läs mer

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

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 Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för I1, K2, L1, M1, Media1 och T1. Tentamen (1p) 6 april 2002, kl 14.00 17.00 Hjälpmedel: En javabok(det blå javahäftet som ingår i kursbunten räknas

Läs mer

Java, klasser, objekt (Skansholm: Kapitel 2)

Java, klasser, objekt (Skansholm: Kapitel 2) Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma

Läs mer

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

Programmering för språkteknologer II, HT2011. Rum Programmering för språkteknologer II, HT2011 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv11/pst2/ Kursplan Mål Efter avslutad kurs skall studenten för att förtjäna betyget

Läs mer

Presentation av trafiksimuleringsprojektet

Presentation av trafiksimuleringsprojektet (27 februari 2017 Trafiksimulering 1 ) Presentation av trafiksimuleringsprojektet Skall diskutera Ett lite större program med flera klasser Hur man designar ett system Hur man ritar klassdiagram i UML

Läs mer

JAVAUTVECKLING LEKTION 11

JAVAUTVECKLING LEKTION 11 JAVAUTVECKLING LEKTION 11 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Mer om klasser och objekt Statiska/instans-metoder Överlagrade metoder Inkapsling Konstruktorer 1 UPPGIFT

Läs mer

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

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

ID1004 Laboration 4, November 2012

ID1004 Laboration 4, November 2012 06-Nov-2012/FK ID1004 Laboration 4, 14-16 November 2012 Beräknad tid ca 1-2 timmar. Instruktionen antar att labben utförs i datasal, med hjälp av den integrerade utvecklingsmiljön Eclipse. Alternativt

Läs mer

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2 TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2 Pelle Evensen, Daniel Wetterbro 5 november 2009 Sammanfattning Denna vecka ska vi titta på abstrakta klasser kontra interface,

Läs mer

DAT043 Objektorienterad Programmering

DAT043 Objektorienterad Programmering DAT043 Objektorienterad Programmering Detta är en exempeltenta som innehåller gamla tentauppgifter av ungefär liknande slag som ni kan förvänta er se på ordinarie tenta i Del 1 respektive Del 2. Dock är

Läs mer

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/ Exempel: Implementation av Schackpjäser.

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/ Exempel: Implementation av Schackpjäser. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/3 2017 Innehåll Abstrakta klasser Klasshierarki och typhierarki Polymorfism och dynamisk bindning Polymorfi-exempel: Schack Klassen Object

Läs mer

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye DD2310 Javaprogrammering för Pythonprogrammerare Johan Boye James Gosling pappa till Java Hej.java public class Hej { public static void main( String[] args ) { System.out.println( "Hej" ); Java basics

Läs mer

Två designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011)

Två designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011) Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Innehåll Föreläsning 8 Två designmönster, MVC och Observer/Observable. Designrekommendation

Läs mer

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 Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Tentamen i Programmeringsteknik I, ES, 2010-03-18

Tentamen i Programmeringsteknik I, ES, 2010-03-18 Tentamen i Programmeringsteknik I, ES, 2010-03-18 Skriv tid: 14-17. Hjälpmedel: 1. Kurslitteratur, en av följande: Lewis & Loftus, Java Software Solutions Skansholm, Java Direkt Guzdial & Ericson, Intrododuction

Läs mer

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

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: Att skapa en klass kvadrat Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: public class Kvadrat { private int sida; Det var väl inte

Läs mer

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine Objektorienterad Programmering (TDDC77) Föreläsning XI: åsidosättning, gränssnitt, uppräkning, hierarkier Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Klassen calculator Signatur Calculator

Läs mer