Objektorienterad tänkande

Slides:



Advertisements
Liknande presentationer
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.
Advertisements

Klasser och objekt.
Programmeringsteknik
Klassarv och inkapsling
Objektorientering.
OOP Objekt-orienterad programmering
Föreläsning 1.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Föreläsning 4 Python: mera om funktioner och parametrar
Arv.
Abstract & sealed.
Inkapsling.
Polymorfism.
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Programkodens uppbyggnad
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Modellering med UML
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Alice in Action with Java
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Objektbaserad programmering –Grundläggande om klasser och objekt – (Arv får vänta)  Iden med klasser.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmering i C# 3. Klasser.
Föreläsning 2, Kapitel 2 Att förstå klassdefinitioner Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.
PROCESSPROGRAMMERING
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( )‏ Innehåll:Trådsäkerhet - Intrinsic locks och synkronisering - Synchronized statements.
Sid 41 Fordon int antalhjul; int vikt;
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.
Vektorer (klassen Vector) Sortering
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
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.
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Ingen vet vad han klarar innan han har försökt. ” - Publilius Syrus (85 f.Kr.-43 f.Kr.).
Arv.
Programmeringsteknik för Media1 & K1
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
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.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
Objektorientering.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Java paket och jar-filer
Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,
Introduktion till klasser, objekt och BlueJ Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
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 1. Innehåll Introduktion till objektorientering –OOP (objektorienterad programmering) –Objekt, instanser, klasser C++ –OO i C++ –Standardbibliotek.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Föreläsning 4 Klasser Och Objekt.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
INTRODUKTION TILL PROGRAMMERING
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
7. Delegerare och notifierare
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
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.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
OOP&M - teori1 OOP del II– Föreläsning 2 vecka 46 Konstruktorer Instansmetoder Kapitel 14 i kursboken.
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
1 Mer om metoder, variabler, klasser och objekt. Kursboken: - Kapitel 6 - Kapitel 8.
RMI Av: Josefina & Sarah DS04.
Presentationens avskrift:

Objektorienterad tänkande

Vad är ett objekt? Du kan titta överallt runt dig och se många objekt ( verkliga ) t.ex. din studiekamrat, din penna, din cykel o.s.v. Dessa verkliga objekt delar på två egenskaper, alla har tillstånd och beteende. T.ex. cykel har tillstånd ( hjul, växel, styre o.s.v.) och beteende ( bromsa, styra, växla). Styre Hjul Växel

Vad är objekt? Mjukvaruobjekt är modulerat efter de verkliga objekten så att de har också tillstånd och beteende. Mjukvaruobjekt bevarar sina tillstånd i en eller flera variabler. Variabel är en datapost som har en identifierare som t.ex. ett namn eller siffra. Stack Heap rak Styre rund Hjul Växel 21

Vad är ett objekt? Mjukvaruobjekt implementerar sina beteende med metoder. En metod är en funktion ( en kodblock ) som är associerade med detta objekt. Bromsa  Trycka på bromsen Hjulen stannar Styra  Höger eller vänster Växla  upp eller ner Så definitionen av ett objekt är att objekt är en bunt av variabler och relaterade metoder.

Vad är objekt? Allt vad ett mjukvaruobjekt vet (tillstånd) och kan göra (beteende) kan utryckas med hjälp av variabler och metoder. Mjukvaruobjekt som är modulerats efter det verkliga objektet, i det här fallet cykeln, borde ha vissa variabler som indikerar cykeln nuvarande tillstånd (hastighet=10 mph, nuvarande växeln=5). Dessa variabler är formellt kända för instansvariabler för att de innehåller tillstånd för en viss cykelobjekt och i objektorienterad terminologi, en viss objekt kallas för en instans. Mjukvaruobjektet bör också ha metoder för att bromsa, växla och pendla. Dessa metoder är formellt kända för instansmetoder för att de kontrollerar eller manipulerar tillstånd av ett visst objekt.

Vad är ett objekt? Bilden visar att objektets variabler utgör centrumet eller kärnan av objektet. Metoderna omger och skyddar objektets kärnan från andra objekt. Att paketera objektets variabler i en skyddad miljö med hjälp av metoder kallas dataabstraktion (encapsulation). Den konceptuella bilden av ett objekt, kärnan av variabler som skyddas av metoder, är en ideal representation av objektet och är idealet för designers av objektorienterade system/applikation.

Vad är ett objekt? Dataabstraktionen är fortfarande mycket enkel och kraftig idee som tillhandahåller två primära fördelar för utvecklaren Modularitet: Källkoden för en viss objekt kan skrivas och underhållas separat, självständiga, från andras objekts- källkod. Alltså ett objekt kan enkelt flyttas runt in i systemet. Du kan ge din cykel till någon annan och den ska fortfarande fungera. Gömma information: Ett objekt har en publik gränssnitt för att kommunicera med andra objekt. Objektet kan ha privata information och metoder som kan ändras när som helst utan att påverka andra objekt som är beroende av detta. Du behöver inte förstå växelns uppbyggnad för att kunna använda den.

Vad är meddelande? Ett ensamt objekt är i princip inte mycket användbart. Istället ett objekt är vanligtvis en del av ett större program eller applikation där finns många andra objekt. I och med att dessa objekt kan interagera med varandra så programmerare kan åstadkomma ett högre funktionalitet och mer komplexa beteende i sina applikationer. En cykel som hänger i garaget är endast en klump av metall och kan inte utgöra själv något aktivitet. Cykeln blir användbar endast när ett annat objekt i det här fallet (du) som interagera med den ( börja cyckla).

Vad är meddelande? Mjukvaruobjekt interagerar och kommunicerar med varandra med att skicka meddelande till varandra. T.ex. när ett objekt A vill att objekt B ska utföra någonting så objekt A skickar ett meddelande till objekt B.

Vad är meddelande? Ibland mottagarobjektet behöver mer information för att veta exakt vad det ska utföra. T.ex. medan du cyklar och vill växla så du måste först indikera vilken växeln du vill ha innan du växlar. Växelposition skickas till objektet växeln som ett meddelande. Tre komponenter som omfattar ett meddelande Objektet till vilket meddelandet är adresserat (din cykel) Namnet på metoden, verben, som ska utföras (växla) Parameter som behövs för denna metod (ner/upp)

Klasser och objekt

Vad är en klass En ”kakform” för att skapa flera likadana objekt. En gjutform som används för att konstruera (skapa) många exemplar (instanser eller objekt) av typen. En definition av en typ för användning i applikationer. En klass beskriver (definierar) en grupp av saker (objekt). Klassen Bil definierar bilar generellt. De två viktigaste delar av en klass är: fält (variabler) som innehåller data. metoder som utför operationer på data.

Vad är ett objekt Ett objekt har tillstånd och beteende. Objektets tillstånd (State) sparas i fält (instansvariabler eller attribute) i en klassinstans (objekt av en klass). Objektets beteende (Behavior) definieras i metoder (funktioner, procedurer eller rutiner) Saker som händer i ett objekt. Tjänster som objektet erbjuder till andra metoder i samma eller andra klasser.

Klass och objekt Objekt – ”saker” som innehåller data samt metoder. Klasser – ”gjutform” som beskriver objekt. En .Net applikation består i princip av en eller flera klasser. Allt är objekt i .Net. Alla objekt automatiskt härledds av ett superobjekt som heter just ”Object” som en alias till ”System.Object”. En klass i .Net är en typ. En typ är En mängd värden med tillhörande operationer. En samling av fält, metoder, händelser och operatorer

C#-exempel metoder fält …. Och 3 objekt, Var och en har En klass sin uppsättning av data En klass Public class Car { data metoder } Public class CarApplication { public void Main() Car familyCar = new Car(”Family”); Car veteranCar = new Car(”Veteran”); Car raceCar = new Car(”Race”); }

Klass vs objekt Ett objekt är en instans (ett unikt exemplar) av en klass som skapas med nyckelordet new. Ett objekt är ett föremål som (alltid) tillhör (beskrivs av) en klass. En klass definierar (allmänt) en grupp av objekt. raceCar är ett objekt som tillhör klassen Car familyCar och veteranCar är andra objekt av klassen Car Dessa är TRE objekt av EN klass.