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

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

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

EnKlass. Instans 3 av EnKlass. Instans 2 av EnKlass

Arv. Objektorienterad och komponentbaserad programmering

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

Introduktion till arv

OOP Objekt-orienterad programmering

Mer grafik. Jan Erik Moström

Repetition av viktiga begrepp inom objektorienterad programmering

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

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

1 Repetition av viktiga begrepp inom objektorienterad programmering

Objektorienterad programmering. Grundläggande begrepp

Klasser och objekt, referenser Grundkurs i programmering med Python

Sätt att skriva ut binärträd

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

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

Övning 6. Ali Tofigh 24 Oktober, 2006

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

Föreläsning 13 Datalogi 1 DA2001

Föreläsning 5-6 Innehåll

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

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

Målen med OOSU. Objektorienterad programmering. Objektorienterad programmering. Karlstads Universitet, Johan Öfverberg 1

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

Imperativ programmering. Föreläsning 4

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

Objektorienterad Programmering (TDDC77)

Föreläsning 13 Innehåll

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

TDP002 Imperativ programmering. Laborationsmaterial emacs python-mode

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

DAT043 - Föreläsning 7

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

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

Laboration 1 - Grunderna för OOP i Java

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

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

Övningar Dag 2 En första klass

Klasshierarkier - repetition

Laboration 1: Figurer i hierarki

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

Kopiering av objekt i Java

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

Föreläsning 13 och 14: Binära träd

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

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

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015

Objektorienterad Programmering (TDDC77)

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

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

Objektorientering - Arv och polymorfi. Eric Elfving Institutionen för datavetenskap

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander

Python. Vi har ofta behov av att behandla datastrukturer på ett enhetligt sätt så att vi kan göra samma sak i flera olika program.

TDDC76 - Programmering och Datastrukturer

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

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

Objektorienterad programmering i Java

OOP Objekt-orienterad programmering

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

Föreläsning 5. När skall man använda implementationsarv? När skall man använda implementationsarv?

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

OOP Tenta

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

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

Objektorienterad programmering

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Programmering B med Visual C

Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D.

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

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

OOP Objekt-orienterad programmering

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

Föreläsning REPETITION & EXTENTA

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

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

Objektorienterad Programmering (TDDC77)

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

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

Programmering i C++ EDA623 Arv. EDA623 (Föreläsning 6) HT / 42

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

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

OOP Objekt-orienterad programmering

Föreläsning 5 Programmeringsteknik DD1310. Modulen doctest. Exempel. Doctest Dictionary Filhantering

Det objektorienterade synsättet. Objekt. Datorprogrammet kan uppfattas som en slags modell av den verklighet programmet skall samverka med.

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

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

Klasser och objekt. Henrik Johansson. August 20, 2008

Objektorienterad programmering i Java I

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

JAVA Mer om klasser och objektorientering

Föreläsning 9: Arv och UML

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016

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

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

Transkript:

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(): return antal antal=staticmethod(antal) def reklam(): return.reklam 2/16 Egen modul Man kan samla alla funktioner och klasser i en fil och importera filen i huvudprogrammet, precis på samma sätt som man importerar moduler från standard biblioteket. 3/16 1

Self är en referensvariabel som refererar inifrån instansen till själva instansen. 4/16 metoderna str och cmp str () Används om man vill få ut en textrepresentant av ett objekt cmp (,x) Används om man vill jämföra två objekt (oftast av samma typ) med följande jämförelse operatorer: >,<,==,!=,<= och >= 5/16 Publika och privata metoder Om en metod definieras med ett namn som börjar med två understreck då är metoden privat. Alltså metoden kan endast anropas inom klassen och inte från en kod utanför klassen. Om en metodnamn inte definieras med två understreck då är metoden publik. Alltså metoden kan anropas överallt i programmet. 6/16 2

När objekt A anropar en metod hos objekt B då skickar A ett meddelande till B. 7/16 class Student(object): def init (,n):. name=n def getname(): return. name class Teacher(object): def init (,n):.name=n def introduce(,s): thebeststudent=s.getname() print "Mitt namn är,.name,"och är stolt över min elev, thebeststudent s=student("eva Matsson") t=teacher("malin Samuelsson") #I följande kod skickas ett meddelande från teacher objektet, t till student objektet, s. t.introduce(s) 8/16 I objektorienterade språk finns arv möjlighet. Subklass ärver från superklass. En subklass ärver alla metoder och attribut från superklassen. 9/16 3

class Ellips(object): def init (,a,b):.lang = a.kort = b def area(): import math return math.pi*.lang*.kort class Cirkel(Ellips): def init (,r): super(cirkel,). init (r,r) def omkrets(): import math return 2*math.pi*.lang 10/16 av metoder av en metod är då man definierar en metod i en subklass där metoden är redan definierad i superklassen. 11/16 class Parallelogram(object): def init (,a,b,h):.kant1=a.baskant=b.hojd=h def area(): return.hojd*.baskant def omkrets(): return 2*(.kant1+.basKant) 12/16 4

class Rektangel(Parallelogram): def init (,a,b):.kant1=a.baskant=b def area(): return.kant1*.baskant class Kvadrat(Rektangel): def init (,a): super(kvadrat,). init (a,a) 13/16 Man utökar en subklass om man i klassen lägger till metoder eller attribut som inte är deklarerade i superklassen. Detta är användbar när man vill skapa en mer specialiserad version av superklassen. 14/16 är möjligheten att kunna skicka samma meddelande till objekt av olika klasser och få olika resultat. 15/16 5

Dela upp ditt program till olika filer och använd moduler för att införa funktioner och klasser str är en metod som anropas när man använder objektet i samband med print cmp är en metod som anropas när man använder objekt i jämförelseoperatorer, användbar i samband med sort() 16/16 6