Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Klasser och objekt.
Funktioner och programorganisation
Programmeringsteknik
Programmeringsteknik Föreläsning 6 Skolan för Datavetenskap och kommunikation.
Klassarv och inkapsling
OOP Objekt-orienterad programmering
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning.
Metoder i java Det finns två typer av metoder i java
Föreläsning 4 Python: mera om funktioner och parametrar
2D1311 Programmeringsteknik med PBL Föreläsning 7 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
Föreläsning 9 Sökning, sortering, grafikprogrammering.
Arv.
Abstract & sealed.
Inkapsling.
Objektorienterad tänkande
Polymorfism.
Programmeringsteknik för K och Media
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Alice in Action with Java
Föreläsning 13 Polymorfism, Paket och JAR-filer. Polymorfism Ordet härstammar från grekiskan Poly – många Morf – form Polymorf – många former Någonting.
Objektorienterad programmering i Java
Föreläsning 5. Problemet Vi har sett att vi kan ersätta de metoder vi ärver från överklassen med egen funktionalitet (polymorfism) class Bil : public.
int res2=Math.max(tal1,tal2);
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
4. Arv och dynamisk bindning
Föreläsning 8, kapitel 8 Förbättra strukturen med arv Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.
Polymorfism.
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Räckvidd och synlighet. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Synlighet (meddelandesändning) Det.
Föreläsning 3 Programmeringsteknik och Matlab DD1312
F. Drewes, Inst. f. datavetenskap1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning Singel mot multipelt.
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
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.
DD1311 P ROGRAMMERINGSTEKNIK MED PBL Föreläsning 9 Skolan för Datavetenskap och kommunikation.
MV500B: Introduktion till interaktiv ljuddesign David Yanagisawa, Anders-Petter Andersson 4.5 högskolepoängLektion 3.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 9 Gränssnitt. Super Super kan användas till anrop av en omdefinierad metod Super kan användas till anrop av konstruktorer i superklassen Super.
Föreläsning 4 Klasser Och Objekt.
Objektorienterad programmering i Java
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
Föreläsning 13 Appletprogram/fristående grafiska program Arv Rita linjer, rektanglar mm Skriva text, byta färg Appletprogram & HTML Grafiska användargränssnitt.
Programmeringsteknik Föreläsning 8 Skolan för Datavetenskap och kommunikation.
Föreläsning 7 Programmeringsteknik och Matlab DD1315 Kommandotolk parametrar Klass Instans Metod konstruktor.
Föreläsning 9 Arv kap 8.1 Interface kap 9.2 Grafiska användargränssnitt (GUI) kap 10.
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
1 Föreläsning 8 Mer om klasser och objektorientering.
Föreläsning 2 programmeringsteknik och Matlab 2D1312/ 2D1305
Föreläsning 17 Repetition. Källkodsformat Unicode används åäöμψζ tillåtna i namn på identifierare Inte alla miljöer klarar av det Källkod Bytekod Java.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Programmeringsteknik
Föreläsning 5 Klasser och instanser
OOP - teori1 OOP del II– Föreläsning 5 vecka 6. OOP - teori2 Klasser Substantiv i singularis stavat med stor bokstav till exempel Human Dog Account Circle.
1 Föreläsning 6 Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Program indata ? utdata 1/20 Vahid Mosavat, Nada, KTH.
OOP&M - teori1 OOP&M del II– Föreläsning 5 vecka 50 OBJEKT Substantiv i singularis stavat med stor bokstav till exempel Human Dog Account Circle Book String.
Malmö högskola Rolf Axelsson 2003/2004 DA7231, 4 poäng Referensvariabel Klass och konstruktorer Klass med set- och get-metoder Klass och fält Fler metoder.
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
Arv, abstrakta klasser och gränssnitt
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
Föreläsning 9: Arv och UML
Presentationens avskrift:

Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder, Polymorfism

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 2/16 Klassmetod Det är en metod som tillhör klassen och inte objektet. class Phus_Skylt(object): antal=0 def __init__(self,r): self.reklam=r def antal(): return antal antal=staticmethod(antal) def reklam(self): return self.reklam

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 3/16 Egenmodul 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.

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 4/16 self Self är en referensvariabel som refererar inifrån instansen till själva instansen.

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 5/16 metoderna __str__, __lt__… __str__(self) Används om man vill få ut en textrepresentant av ett objekt __lt__, __gt__, __le__, __ge__, __eq__ och __ne__ Används om man vill jämföra två objekt (oftast av samma typ) med följande jämförelse operatorer:, =, == och !=

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 6/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.

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 7/16 Meddelande När objekt A anropar en metod hos objekt B då skickar A ett meddelande till B.

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 8/16 Exempel class Student(object): def __init__(self,n): self.__name=n def getName(self): return self.__name class Teacher(object): def __init__(self,n): self.name=n def introduce(self,s): theBestStudent=s.getName() print "Mitt namn är”,self.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)

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 9/16 Arv I objektorienterade språk finns arv möjlighet. Subklass ärver från superklass. En subklass ärver alla metoder och attribut från superklassen.

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 10/16 Exempel import math class Ellips(object): def __init__(self,a,b): self.lang = a self.kort = b def area(self): return math.pi*self.lang*self.kort class Cirkel(Ellips): def __init__(self,r): super(Cirkel,self).__init__(r,r) def omkrets(self): return 2*math.pi*self.lang

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 11/16 Överlagring av metoder Överlagring av en metod är då man definierar en metod i en subklass där metoden är redan definierad i superklassen.

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 12/16 Exempel class Parallelogram(object): def __init__(self,a,b,h): self.kant1=a self.basKant=b self.hojd=h def area(self): return self.hojd*self.basKant def omkrets(self): return 2*(self.kant1+self.basKant)

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 13/16 Exempel class Rektangel(Parallelogram): def __init__(self,a,b): self.kant1=a self.basKant=b def area(self): return self.kant1*self.basKant class Kvadrat(Rektangel): def __init__(self,a): super(Kvadrat,self).__init__(a,a)

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 14/16 Utökning 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.

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 15/16 Polymorfism Polymorfism är möjligheten att kunna skicka samma meddelande till objekt av olika klasser och få olika resultat.

Översikt Klassmetod Egen modul self __str__, __lt__,… Publik/Privat Meddelande Arv Överlagring Utökning Polymorfism Sammanfattning 16/16 Sammanfattning 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 __lt__ är en metod som anropas när man använder objekt i jämförelseoperatorer, användbar i samband med funktionen sort()