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

Storlek: px
Starta visningen från sidan:

Download "Föreläsning 16 Arv. Jan Lönnberg 3.11.2011. T-106.1212 Grundkurs i programmering"

Transkript

1 Föreläsning 16 Arv Grundkurs i programmering Jan Lönnberg Institutionen för datateknik -universitetets högskola för teknikvetenskaper

2 Varför? I ett studieregister har vi både studenter och lärare. Både studenter och lärare har namn och dylikt. Vi måste ändå ha samma get_name- och set_name-metoder... eller? Det här gör koden svårare att läsa och ändra på. Hur blir vi av med duplikaten? Föreläsning 16 Arv 2/15

3 Vad? Arv (eng. inheritance) är ett annat sätt att definiera begrepp som är delar av andra begrepp. I arv säger vi att en klass (subklassen) innehåller alla metoder och instansvariabler från en annan klass (superklassen). Objekt som är instanser av en klass är också instanser av dess superklasser. Föreläsning 16 Arv 3/15

4 Arvshierarki Djur Leddjur Ryggradsdjur Spindel Insekt Kräldjur Däggdjur Fågel Nyckelpiga Katt Människa Arvsrelationen bildar en hierarki. Föreläsning 16 Arv 4/15

5 object Många klassers definition börjar med (object). Inom parentesen anges den omedelbara superklassen; den som klassen tar sina metoder och variabler från. object är alla klassers superklass. Alla klasser ärver objects metoder och variabler (direkt eller indirekt). Alla objekt är instanser av object. Föreläsning 16 Arv 5/15

6 Experiment Undersök med type() och isinstance()-funktionerna vad olika inbyggda objekt och biblioteksobjekt är instanser av! type tar ett argument och returnerar dess typ. isinstance tar två argument och returnerar om det första är en instans av det andra. Använd Pydevs Hierarchy View för att undersöka klasshierarkin (tryck F4 över en klass) på t.ex. klasserna i Tkinter och tidigare exempel. Föreläsning 16 Arv 6/15

7 Exempel Låt oss skapa en klass Person som Student och Staff ärver från. Student-objekt är instanser av både Student och typ Person. Likaledes för Staff. Vi kan alltså använda Student och Staff som Person. Föreläsning 16 Arv 7/15

8 register Skapa en superklass Person med det som är gemensamt för Student och Staff. Ta bort allt onödigt från Student och Staff. Undersök med Hierarchy View vad ni skapat! Föreläsning 16 Arv 8/15

9 Överlagring En klass kan ersätta en ärvd metod med en annan. Detta kallas överlagring. Metoder söks alltså i en klass från objektets typ uppåt längs superklasserna till object. T.ex. str ()- och init ()-metoderna överlagras ofta. Subklassen kan initiera superklassens instansvariabler själv, men det bryter mot vår inkapslingsprincip. klass. init (self, argument ) lättaste sättet. Föreläsning 16 Arv 9/15

10 Överlagring Alternativt kan en överlagrad metod kommas åt genom super()-funktionen. Första argumentet är klassen att hoppa över i sökningen av metoden (typiskt klassen super() används i). Andra argumentet är (typiskt) ett objekt, vanligen self. Returvärdet är ett objekt från vilket metodanrop går till det givna objektet, men den angivna klassen hoppas över. Föreläsning 16 Arv 10/15

11 register Använd överlagring av init () för att initiera namnet på personer på bara ett ställe. Använd båda sätten att anropa superklassens initieringsmetod. Föreläsning 16 Arv 11/15

12 Multipelt arv En klass i Python kan ärva från flera klasser på en gång. Istället för en superklass kan man skriva en lista. Om vi har en häst- och en fågelklass, kan vi ha en pegas som ärver bådas förmågor. I initieringsmetoden måste vi anropa båda superklassernas initeringsmetoder (om de har) för att få instansvariabler initierade. Föreläsning 16 Arv 12/15

13 Multipelt arv Metoder som inte finns i en klass söks i superklasser i den ordningen som de anges i klassdefinitionens början (från vänster till höger). Sökningen sker rekursivt i den här ordningen. M.a.o. alla den vänstra superklassens superklasser kommer att kollas före den högra superklassen kollas. Föreläsning 16 Arv 13/15

14 horses Undersök Pegasus-klassen. Fyll i initieringsmetodens innehåll. För att bli av med de kvittrande pegaserna, döper vi om Horse.whinny() och Bird.chirp() till sound(). Se till att pegasen ärver rätt läte! Alternativt, överlagra sound() med ett unikt läte. Föreläsning 16 Arv 14/15

15 Slut Nästa föreläsning :15 16:00 i Maari-C Tabeller Kom ihåg Rond 7 deadline Rond 8 deadline Föreläsning 16 Arv 15/15

"Ä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

Java-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... }

Java-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... } Föreläsning 3 Arv Kategorisering Stora program leder till många klasser (tänk liknelsen med en affär med många varor). Att dela in saker i kategorier är en vanlig strategi för att hantera stora komplexa

Läs mer

Objektorienterad programmering Föreläsning 12. Copyright Mahmud Al Hakim

Objektorienterad programmering Föreläsning 12. Copyright Mahmud Al Hakim Objektorienterad programmering Föreläsning 12 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Introduktion till Arv Superklasser och Subklasser Dolda medlemmar (new och base) Statisk

Läs mer

Föreläsning 8 Programmeringsteknik och Matlab DD1312. Klassmetod. Egen modul

Föreläsning 8 Programmeringsteknik och Matlab DD1312. Klassmetod. Egen modul Föreläsning 8 Programmeringsteknik och Matlab DD1312 er, Self Metoderna:, av metoder, Det är en metod som tillhör klassen och inte objektet. class Skylt(object): antal=0 def init (,r):.reklam=r def antal():

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

Föreläsning 18 Filer och avbildningar

Föreläsning 18 Filer och avbildningar Föreläsning 18 Filer och avbildningar Grundkurs i programmering Jan Lönnberg Institutionen för datateknik -universitetets högskola för teknikvetenskaper 15.11.2011 Avbildningar Hur skulle du göra en: Ordlista

Läs mer

Föreläsning 13 Testning och strängar

Föreläsning 13 Testning och strängar Föreläsning 13 Testning och strängar Grundkurs i programmering Jan Lönnberg Institutionen för datateknik -universitetets högskola för teknikvetenskaper 13.10.2011 Testning Tips för systematisk testning

Läs mer

Föreläsning 5 Mer om funktioner, villkor

Föreläsning 5 Mer om funktioner, villkor Föreläsning 5 Mer om funktioner, villkor Grundkurs i programmering Jan Lönnberg Institutionen för datateknik -universitetets högskola för teknikvetenskaper 15.9.2011 Varför? Det finns sammanhang där ett

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2 729G75: Programmering och algoritmiskt tänkande Tema 3, föreläsning 2 Översikt Vanliga mönster när man designar en klass Klass-diagram Exempel Arv i Python Egna klasser använd som egna datatyper, men även

Läs mer

Objektorienterad Programmering (TDDC77)

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

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

DAT043 - Föreläsning 7

DAT043 - Föreläsning 7 DAT043 - Föreläsning 7 Model-View-Controller, mer om klasser och interface (arv, ) 2017-02-06 Designmönstret Observer avläser Observer Observable meddelar Observer avläser En eller flera objekt registrerar

Läs mer

Objektorienterad programmering. Grundläggande begrepp

Objektorienterad programmering. Grundläggande begrepp Objektorienterad programmering Grundläggande begrepp Hur beskriver vi objekt? Vill ha en representationsoberoende beskrivning Abstrakta datatyper! Data Operationer Objekt Representerar en verklig eller

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

Programmering grundkurs

Programmering grundkurs Programmering grundkurs Föreläsning 8 Jody Foo, jody.foo@liu.se Föreläsningsöversikt, FÖ 8-9 Kurslogistik: nya pargrupper Programmeringsparadigm: Objektorienterad programmering (OOP) Klass, instans, instansvariabler,

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

Kopiering av objekt i Java

Kopiering av objekt i Java 1 (6) Kopiering av objekt i Java Först När du läser detta papper bör du samtidigt studera dokumentationen för klasserna Object, Cloneable (java.lang) och ArrayList (java.util). Mycket blir klarare genom

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

Hos vad? och bör därför vara instanseller klassvariabel i vilken klass?

Hos vad? och bör därför vara instanseller klassvariabel i vilken klass? Övningstillfälle 5 Lite kort repetition om klasser och objekt class EnKlass(KlassAttÄrvaFrån): klassvariabel = 5 def init (self) KlassAttÄrvaFrån. init (self) self.instansvariabel = 10 s = 'klassvariabel=

Läs mer

Laboration 1: Figurer i hierarki

Laboration 1: Figurer i hierarki Laboration 1: Figurer i hierarki Bakgrund Två grundläggande tekniker i objektorienterad konstruktion är arv och komposition. Mål Laborationen har flera avsikter: 1. Ge kunskaper i hur program kan organiseras

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

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Instansiering Åtkomst Abstrakt datatyp UML Överlagring

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

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

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp. Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Att instansiera en klass Objekt I Man instansierar (skapar

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2 729G75: Programmering och algoritmiskt tänkande Tema 3, föreläsning 2 Översikt Vanliga mönster när man designar en klass Arv i Python UML-diagram Exempel Vanliga mönster när man designar en klass Namngivning

Läs mer

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a. Översikt UML Sekvensdiagram (dynamic structure) Informationsflöde genom programmet Användningsfall (use cases) Aktörers interaktion med systemet Paketdiagram Beroenden mellan paket abstrakta klasser Multipel

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Emil Ahlqvist (c10eat@cs.umu.se) Didrik Püschel (dv11dpl@cs.umu.se) Johan Hammarström (c08jhm@cs.umu.se) Hannes Frimmel Moström (c10hml@cs.umu.se) 1 1. Introduktion 1.1 Objektorienterad

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

EnKlass. Instans 3 av EnKlass. Instans 2 av EnKlass

EnKlass. Instans 3 av EnKlass. Instans 2 av EnKlass Övningstillfälle 4 Klasser och objekt (s. 221 ff.) Syfte 1: En naturlig fortsättning på koncepten abstraktion och inkapsling! Funktion (återanvändning av skyddad, säker och testad kod) Modul (återanvändning

Läs mer

Lite modifierad Laboration 1 Körkortsprov för Smalltalk och VisualWorks

Lite modifierad Laboration 1 Körkortsprov för Smalltalk och VisualWorks Lite modifierad Laboration 1 Körkortsprov för Smalltalk och VisualWorks Vissa anpassningar är gjorda för att passa VisualWorks- 3 991124, dock inte skärmdumpar (vilka är Visual- Works-2) /Björn 1 Inledning

Läs mer

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder Introduktion TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder OO är den mest använda programmeringsparadigmen idag, viktigt steg att lära sig och använda OO. Klasser är byggstenen i

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

Imperativ programmering. Föreläsning 4

Imperativ programmering. Föreläsning 4 Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering

Läs mer

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

Övning 3. Datateknik A, Java I, 5 poäng 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.

Läs mer

Static vs Dynamic binding Override vs Overload. Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018

Static vs Dynamic binding Override vs Overload. Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018 Static vs Dynamic binding Override vs Overload Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018 Quiz: Gissa typen? Object o = new Square(100,100); Polygon p =

Läs mer

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel Lösningar till Fiktiv Tentamen på kursen 2D4135 Objektorienterad programmering, design och analys med Java vt2004 Teoridel T1) (4p) Förklara kort följande grundläggande begrepp inom objektorienterad programmering:

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

Objektorienterad programmering i Racket

Objektorienterad programmering i Racket Objektorienterad programmering i Racket Rasmus Andersson lätt utökat av Anders M. L. Februari 2016 Innehåll 1 1 Inledning Detta kompendium är skrivet som en resurs för kursen TDDC74 Programmering - abstraktion

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Introduktion HT2 Åtkomst Abstrakt datatyp UML Överlagring

Läs mer

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim  Agenda (halvdag) Objektorienterad programmering Föreläsning 8 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda (halvdag) Objektorienterad programutveckling Algoritmer Algoritmkonstruktionerna Relationer

Läs mer

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen. TT Kapitel 3. Husdjur & Fisk Javaklasser Translation by Leif Lourié Java program består av klasser som beskriver saker (objekt) som finns på riktigt. Även om det finns många olika sätt att skriva program

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016 Objektorienterad Programkonstruktion Föreläsning 2 2 nov 2016 Objekt - klass Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 Objekt - klass Objekt - klass Objekt - klass + Objekt - klass public class

Läs mer

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018 Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design (DIT95) Niklas Broberg, 2018 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon

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

Outline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML.

Outline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML. Outline Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Vad händer under HT2 Laborationsserie del två I Klasser

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

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

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

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

Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering! Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering! Gränssnitt igen För att kunna ändra på olika delar av programmet utan att andra delar

Läs mer

Objektorienterad konstruktion

Objektorienterad konstruktion Analys - Objektorienterad konstruktion Vad är objektorientering?» Ett sätt att angripa programmeringsproblem» Ett sätt att tänka när man programmerar Vad innebär objektorientering?» Att uppmärksamheten

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

725G61 - Laboration 6 Objektorientering, modellering och arv. Johan Falkenjack

725G61 - Laboration 6 Objektorientering, modellering och arv. Johan Falkenjack 725G61 - Laboration 6 Objektorientering, modellering och arv Johan Falkenjack November 27, 2013 1 Inledning I labb 5 tittade vi på grundläggande objektorientering och skapade en första klass som vi kunde

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

Objektorienterad programmering i Racket

Objektorienterad programmering i Racket Objektorienterad programmering i Racket Rasmus Andersson och Anders M. L. Mars 2017 Ursprungligt utkast av R.A. inför kursen 2015. Innehåll 1 Inledning 2 1.1 Vad detta är, och inte är......................................

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

Innehåll. 1 Kort om dynamisk polymorfism. 2 Arv i C++ 3 Multipelt arv. 4 Något om statisk polymorfism. class Container {

Innehåll. 1 Kort om dynamisk polymorfism. 2 Arv i C++ 3 Multipelt arv. 4 Något om statisk polymorfism. class Container { Innehåll EDAF30 Programmering i C++ Arv. Polymorfism. Sven Gestegård Robertz Datavetenskap, LTH 2015 1 Kort om dynamisk polymorfism Virtuella funktioner 2 Arv i C++ Konstruktorer och destruktorer Tillgänglighet

Läs mer

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt Föreläsning 4 Klasser Och Objekt Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning Objekt skapas från klassbeskrivningen - instansieras

Läs mer

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine. Objektorienterad Programmering (TDDC77) Föreläsning XI: åsidosättning, gränssnitt, uppräkning, hierarkier Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Signatur public static int parseint (

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

E13 "Behind the Wild"

E13 Behind the Wild E13 "Behind the Wild" Föreläsning 13, HT2014 Det vi missat och lite till Kurs: 1dv403 Webbteknik I Johan Leitet E13 Behind the Wild Dagens agenda Cookies Web storage Context/ändra context Augmentation

Läs mer

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1

Läs mer

Objektorienterad programmering Föreläsning 5

Objektorienterad programmering Föreläsning 5 Objektorienterad programmering Föreläsning 5 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda UML Övning Mer om metoder Standardklassen String Konstruktorer Överlagrade metoder Standardklassen

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

Historik: OOP. Objektorientering. Historik: OOP (forts) En Dum Fråga

Historik: OOP. Objektorientering. Historik: OOP (forts) En Dum Fråga Historik: OOP Simula-67 Norge, 1967 Byggde på Algol-60, avsett för simulering Garbage collection, arv, klasser (inte olikt Java) Smalltalk, Alan Kay, Xerox, 70-tal Introducerade begreppet objekt-orienterad

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

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets GUI (forts) Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets Sven-Olof Nyström Uppsala Universitet 18 mars 2005 Skansholm: Kapitel 6 Användaren kan kommunicera med programmet

Läs mer

Typhierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser

Typhierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Typhierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser Hur används hierarkier för att modellera nära relaterade typer? Nu:

Läs mer

Exempel: Exempel: Exempel: Exempel: $djur=array("ko","katt","älg"); foreach ($djur as $d) { echo $d. " "; } Resultat. ko katt älg

Exempel: Exempel: Exempel: Exempel: $djur=array(ko,katt,älg); foreach ($djur as $d) { echo $d.  ; } Resultat. ko katt älg Loopar och upprepning Vill man upprepa kod flera gånger så istället för att skriva en massa rader så kan man lägga koden i ett kodblock som man sedan loopar. Det finns ett par olika typer av loopar, FORloop,

Läs mer

Agenda. Objektorienterad programmering Föreläsning 13

Agenda. Objektorienterad programmering Föreläsning 13 Objektorienterad programmering Föreläsning 13 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se Agenda Ett objektorienterat exempel Repetition Mer om arv Abstrakta klasser Abstrakta metoder

Läs mer

Lösningar till tentamen i EDAF25

Lösningar till tentamen i EDAF25 Lösningar till tentamen i EDAF25 21 aug 2017 Lösning 1 Javaklasser (många varianter finns naturligtvis): class Client { private Invoker invoker; public void newcommand(string cmdtext) { Command cmd; if

Läs mer

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

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305 Klass Object, instans av klass public/private Klassvariabler och klassmetoder 1 Array och ArrayList Arrayer och ArrayList är till för att innehålla

Läs mer

Klasser och objekt. Henrik Johansson. August 20, 2008

Klasser och objekt. Henrik Johansson. August 20, 2008 Föreläsning 5 Klasser och objekt Henrik Johansson August 20, 2008 Ett objekt är en modell av ett fysisikt eller ett tänkt ting. Objektet och det som vi kan göra med det beskrivs av en mall, en klass. Ett

Läs mer

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT 2013 1 / 26

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT 2013 1 / 26 Programmering i C++ EDA623 Mer om klasser EDA623 (Föreläsning 6) HT 2013 1 / 26 Mer om klasser Innehåll Konstanta objekt Statiska medlemmar Pekaren this Vänner (friends) Överlagring av operatorer EDA623

Läs mer

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg Allmänna Tips Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut

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

Innehåll. Konstruktorer vid arv Regler för basklassens konstruktor. Konstruktorer vid arv. Konstruktorer vid arv. Konstruktorer vid arv

Innehåll. Konstruktorer vid arv Regler för basklassens konstruktor. Konstruktorer vid arv. Konstruktorer vid arv. Konstruktorer vid arv Innehåll EDAF30 Programmering i C++ 9. Polymorfism och arv Sven Gestegård Robertz Datavetenskap, LTH 2017 1 Klasser Polymorfism och arv Konstruktorer och destruktorer Tillgänglighet Arv utan polymorfism

Läs mer

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

Ett objekt... Exempel: Om ni tittar er runt i föreläsningssalen ser in många olika fysiska föremål: Klasser och objekt Ett program i Java är en modell som används för att simulera uppträdandet hos en verklig eller påhittad värld. I ett objektorienterat programspråk modelleras den värld som man vill avbilda

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1. Föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

Objektorienterad programmering, allmänt

Objektorienterad programmering, allmänt Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 juni 2005 1 Vilka egenskaper vill vi att program ska ha? Förslag (en partiell lista): De ska... gå snabbt att skriva vara

Läs mer

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha? Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 mars 2005 1. Korrekthet 2. Robusthet 3. Utökbarhet 4. Återanvändbarhet 5. Kompatibilitet

Läs mer

Prova på-laboration i Ruby

Prova på-laboration i Ruby Prova på-laboration i Ruby Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2008-08-06 1. Introduktion till objektorienterade språk Programmeringsspråket Ruby började

Läs mer

E13 Behind the Wild. Dagens agenda. Cookies Context/ändra context Augmentation (förstärkning) Klassiskt arv Att låna metoder Namespaces Postludium

E13 Behind the Wild. Dagens agenda. Cookies Context/ändra context Augmentation (förstärkning) Klassiskt arv Att låna metoder Namespaces Postludium E13 Behind the Wild Dagens agenda Cookies Context/ändra context Augmentation (förstärkning) Klassiskt arv Att låna metoder Namespaces Postludium Cookies Alternativ: IP-adress URL

Läs mer

729G06 Programmering och logik. Info om pythondelen & introduktion till objektorienterad programmering.

729G06 Programmering och logik. Info om pythondelen & introduktion till objektorienterad programmering. 729G06 Programmering och logik Info om pythondelen & introduktion till objektorienterad programmering. Översikt Kursinformation Vad är objektorienterad programmering Skapa och använda objekt Enstaka objekt

Läs mer

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

Lektion 5. Datateknik A, Java I, 5 poäng Datateknik A, Syfte: Att lära sig utöka befintliga klasser med hjälp av arvsmekanismen och skapa egna klasshierarkier. Att lära sig använda verktyget jar för att packa ihop Javafiler. Att läsa: Kursboken,

Läs mer

LÖSNINGSFÖRSLAG TENTAMEN

LÖSNINGSFÖRSLAG TENTAMEN LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND

Läs mer

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016 Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design Alex Gerdes, 2016 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon tripoly =

Läs mer

Extentamen i 2D1359 Objektorinterad modellering programmering och analys Tisdag den 13 oktober 1998 kl

Extentamen i 2D1359 Objektorinterad modellering programmering och analys Tisdag den 13 oktober 1998 kl NADA, KTH OOMPA 1998-10-13 Sid 1 (8) Extentamen i 2D1359 Objektorinterad modellering programmering och analys Tisdag den 13 oktober 1998 kl. 11-13 Inga hjälpmedel tillåtna. Poäng och betyg: För godkänt

Läs mer

Tentamen ID1004 Objektorienterad programmering December 15, 2012

Tentamen ID1004 Objektorienterad programmering December 15, 2012 Ordinarie tentamen för ID1004 Objektorienterad programmering, 15 december 2012, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

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.

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. Datateknik A, Syfte: 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. Att läsa: Lektion 2 Uppgifter:

Läs mer

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

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-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

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander F9 - Polymorfism ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Polymorfism - flerformighet Vi vet vad metoden heter (signaturen) Men vi vet inte vid anropet exakt vilken metod som faktiskt

Läs mer

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning Generiska klasser Undantag Interface Nästlade klasser 1 Problem:

Läs mer

Tentamen. DD2385 Programutvecklingsteknik vt 2015 Fredagen den 5 juni 2015 kl Hjälpmedel: penna, suddgummi, linjal

Tentamen. DD2385 Programutvecklingsteknik vt 2015 Fredagen den 5 juni 2015 kl Hjälpmedel: penna, suddgummi, linjal Tentamen DD2385 Programutvecklingsteknik vt 2015 Fredagen den 5 juni 2015 kl 9.00 12.00 Hjälpmedel: penna, suddgummi, linjal Tentan har två delar om vardera 30 poäng Maximala betygsgränser (gränserna kan

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 3 Objektorienterad programmering i Java I Uppgifter: 1 Beräknad tid: ca 3-6 timmar Att läsa: sidan 150,151, 170-174, 200, 201 (arv) sidan 178-179, 360 (abstrakta klasser, metoder) + utdelat

Läs mer

Introduktion till Java

Introduktion till Java Översikt Introduktion till Java Språket Java Operatorer Kontrollsatser Överlagring This Klassens beståndsdelar Klassvariabler och klassmetoder Instansvariabler och instansmetoder Strängar Paket Programmering

Läs mer