1 Föreläsning 8 Mer om klasser och objektorientering.

Slides:



Advertisements
Liknande presentationer
2D1311 Programmeringsteknik med PBL
Advertisements

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.
Föreläsning 6 Länkade lista Komplexitet Linjärsökning & binärsökning
Föreläsning 4 Python: mera om funktioner och parametrar
2D1311 Programmeringsteknik med PBL Föreläsning 6 Skolan för Datavetenskap och kommunikation.
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.
Inkapsling.
Polymorfism.
Programmeringsteknik för K och Media
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.
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.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Föreläsning 11 Arrayer.
Objektorienterad programmering i Java
Programmering i C# 3. Klasser.
PROCESSPROGRAMMERING
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
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.
Sid 41 Fordon int antalhjul; int vikt;
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.
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.
Arv.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning Singel mot multipelt.
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.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Namnrum, räckvidd och rekursion Linda Mannila
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,
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.
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.
Arv repetition Arv = Är relation Tillgänglighet public, protected och private. Överklass ös Direkt härledd underklass dhu: Class dhu : public ös{} Indirekt.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Programmeringsteknik
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
Föreläsning 5 Klasser och instanser
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
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 4 Metoder & parametrar Array API och klassen ArrayList.
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.
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - En annan sort tänkande, rekursiva metoder -Datastrukturen träd.
TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder.
TDP004 Objektorienterad Programmering Fö 6 Objektorientering forts.
3.6 Area Parallellogram A = b ∙ h Romb A = b ∙ h Kvadrat A = s ∙ s
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

1 Föreläsning 8 Mer om klasser och objektorientering

2 self Self är en variabel som refererar från instansen till instansen själv.

3 Speciella metoder Vid jämförelse av två instanser av samma klass anropas: __cmp__(self, other) Ska returnera negativt tal om self other.

4 Privata variabler Om en klass vill dölja en variabel för andra klasser kan man göra variabeln ”privat”: class A(object): def __init__(self, mySecret): self.__mySecret = mySecret a = A(”I love Sofie”) print a.mySecret ??? Error ??? print a.__mySecret ??? Error ??? print a._A__mySecret ger: I love Sofie

5 Privata metoder Om en klass vill dölja en metod för andra klasser kan man göra metoden ”privat”: class A(object): ….. def __mySecretMethod(self): print ”I love candy!” a = A(”I love Sofie”) a.mySecretMethod() ??? Error ??? a.__mySecretMethod() ??? Error ??? a._A__mySecretMethod() ger: I love candy!

6 Privata variabler och metoder En variabel eller metod som börjar med två understreck är ”privat”. För att komma åt variabeln/metoden inom klassen används namnet (med de två understrecken) som vanligt. Utanför klassen skall variabeln/metoden egentligen inte användas, men den kan kommas åt genom att använda ett understreck och klassens namn, tex _A, som prefix.

7 Överlagring av metoder Överlagring av en metod är då man definierar om en metod i en klass som klassen har ärvt från superklassen.

8 Exempel class Parallellogram(object): kant1 = None basKant = None hojd = None 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)

9 Exempel class Rektangel(Parallellogram): def __init__(self, a, b): super(Rektangel, self).__init__(self, a, b, b) def area(self): return self.kant1 * self.basKant class Kvadrat(Rektangel): def __init__(self, a): super(Rektangel, self).__init__(self, a, a, a)

10 Utökning Man utökar en subklass när man definierar nya metoder i en subklassen som inte är definierade i superklassen.

11 Polymorfism Polymorfism är möjligheten att kunna använda samma attribut i två eller fler objekt av olika klasser och få olika resultat.