Klasser och objekt.

Slides:



Advertisements
Liknande presentationer
Mall för ett C#-program
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.
Avlusning Debugger (”avlusare”) Breakpoints Watch.
10. Elementen i strukturerad programmering
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Datatyper C# C/C++ Java VB Fortran Pascal bool boolean Boolean
Klassarv och inkapsling
OOP Objekt-orienterad programmering
Föreläsning 1.
Några standardalgoritmer
Filhantering Grundprincipen för filhantering Öppna filen
Metoder i java Det finns två typer av metoder i java
Föreläsning 4 Python: mera om funktioner och parametrar
Objektorienterad tänkande
Välkommen Vahid Mosavat
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.
Att programmera i språket Java
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
TNSL04 – IT grundkurs. VT2008. Föreläsning nr 3, torsdag 7 feb. kl Del 1. Klasser, objekt, metoder, konstruktorer, samlingar och tillstånd. Hur.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Alice in Action with Java
i olika programmeringsspråk
Objektorienterad programmering i 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.
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
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Sid 1 CD5250 OOP med C++ Daniel Flemström MDH/IDT CD5250 OOP med C++
Programmering i C# 3. Klasser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Repetition inför slutprovet
Klasser och objekt Klasser, objekt och instansvariabler
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.
1 ITK:P1 Föreläsning 7 Algoritmer och datastrukturer DSV Marie Olsson.
Polymorfism.
Räckvidd och synlighet. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Synlighet (meddelandesändning) Det.
Arv.
Programmeringsteknik för Media1 & K1
1. En infrastruktur för programutveckling
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.
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.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
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,
Introduktion till klasser, objekt och BlueJ Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer.
Föreläsning 1. Innehåll Introduktion till objektorientering –OOP (objektorienterad programmering) –Objekt, instanser, klasser C++ –OO i C++ –Standardbibliotek.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
Föreläsning 4 Klasser Och Objekt.
1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
Länkade listor Binära träd
Programmering i C# Laborationer.
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
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 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Presentationens avskrift:

Klasser och objekt

Meddelandesändning mellan objekt a:ClassOne b:ClassTwo svar := beräknaSumma(a,b) : int [svar] Vad är summan av 2 plus 3? 5! class ClassTwo { int beräknaSumma(int a, int b) return a + b; }

Meddelandesändning mellan objekt a:Person b:Person svar := FrågaNamn() : string [svar] Vad heter Du? Nisse! class Person { string namn; string FrågaNamn() return namn; }

Klasser och objekt Ett objekt är en instans av en klass. Hur ett objekt tillhandahåller en specifik tjänst (operation) definieras av vilken klass objektet är en instans av. Samtliga instanser av en specifik klass har samma metod (kod) för en specifik tjänst (operation), men för sina egna data.

Klasser Det finns ofta många objekt av samma typ En klass är en beskrivning av objekt av samma typ

Klass i UML Person klassnamn födelsedag : DateTime namn : string telefon : string attribut Person(födelsedag : DateTime, namn : string, telefon : string) Telefon() : string Telefon(value : string) Namn () : string Födelsedag () : DateTime DagarTillNästaFödelsedag () : int operationer

Objekt i UML eva : Person objektidentifierare:klassnamn födelsedag = ”1980-12-24” namn = ”Eva” telefon = ”021-101300” attribut med ev värden

Tre instanser ur samma klass hjärterDam:Kort färg = hjärter valör = dam Kort ruterKung:Kort färg valör färg = ruter valör = kung spaderEss:Kort färg = spader valör = ess

Klasser är inte samlingar av objekt En kortlek är ett objekt i vilken ingår ett antal kort-objekt :Kortlek korten : Kort[52] hjärterDam:Kort färg: hjärter valör: dam ruterKung:Kort färg: ruter valör: kung spaderEss:Kort färg = spader valör = ess En samling av objekt är inte en klass utan det är ett objekt i sig

Samlingar av objekt är inte klasser ..de är objekt i sig! class Kortlek { Kort[] korten = new Kort[52]; } Ett arrayobjekt class Kort { string färg; string valör; } Klasser är inte heller samlingar av objekt. Klasser är ”mallar” för objekten.

Ett objekt per förekomst

Vad är objekt? Data Metoder (algoritmer) Bil class Bil { string regnr; float liter; float km; } static float förbrukning (Bil b2) { return b2.liter/b2.km*10; } Bil regnr liter km förbrukning()

Objektorientering En klass class Bil { string regnr; float liter; float km; } En klass är en “ritning” eller en “mall” som beskriver objekten. Klassen reserverar inget minnesutrymme för data utan varje objekt har sitt eget datautrymme. float förbrukning () { return liter/km*10; } Ett objekt innehåller variabler och metoder. Värdet av variablerna definierar objektets tillstånd och metoderna definierar objektets beteende. ... Bil b2 = new Bil(); En klass beskrivs i programkoden medan objekten skapas och existerar under exekveringen av programmet.

Objektet Bil regnr:string liter:float km:float forbrukning():float minBil:Bil Privat minne (för att lagra data) regnr = ”NHG 084” liter = 2977 km = 61267 Instruktioner (för att bearbeta data) float forbrukning () { return liter/km*10); } class BilTest { public static void Main (string[] args) { Bil minBil = new Bil(); minBil.regnr = ”NHG084”; minBil.liter = 2977; minBil.km = 61267; System.Console.WriteLine(minBil.forbrukning()); }

Varje objekt har en livscykel Bil minBil = new Bil(“NHG084”); Vi instantierar ett objekt… Bil (string r) { regnr = r; } Konstruktorn körs… …och objektet är skapat. Därefter kan objektet förändras… …och tas bort… Bil minBil = null; …fast i Java eller C# tas objektet verkligen bort först när sopgubben (GC) varit framme (I C++ måste du själv agera sophanterare)…

Sekvensdiagram i UML X using System; class PersonTest { public static void Main( ) { } Sekvensdiagram i UML Person evaA = new Person(new DateTime(1980, 12, 24), "Eva", "021-101300"); Person evaB = evaA; evaB.Telefon = "016-153600"; string tfn = evaA.Telefon; Console.WriteLine("Telefon: " + tfn); PersonTest Console System Main ( ) new(födelsedag : DateTime, namn : string, telefon : string) evaA:Person Telefon(value : string) tfn = Telefon() : string WriteLine( tfn ) X

Klasser: Protokoll Den samling operationer ett objekt har Endast meddelanden i protokollet får sändas till ett objekt :Dokument skrivUt() författare() status() protokoll (interface)

Meddelanden i ett objektorienterat system avsändare Nisse:Person mottagare meddelande argument minBil.kör (”fort”); ”Metoden” är den kod som exekveras när just ”minBil” får meddelandet ”kör” minBil:Bil operation kör(hastighet)

Meddelandesändning primärminnet NisseTest Person Bil Nisse:Person class Person { Bil minBil = new Bil(); } primärminnet main( :string[] ) NisseTest void åkTillJobbet () { minBil.kör(”fort”); } class Bil { } Person Bil void kör (string hastighet) { // wrooom... } åkTillJobbet() kör( :string ) class NisseTest { static void Main (string[] args) { Person Nisse = new Person(); } Nisse:Person minBil:Bil Nisse.åkTillJobbet();

Jag har dessa variabler Objektet sett inifrån Varje metod är en sekvens av instruktioner som exekveras som svar på ett meddelande Det finns en metod för varje operation i protokollet Med ”objektets protokoll” avses den samling operationer ett objekt har Endast meddelanden i protokollet får sändas till ett objekt :Dokument Jag har dessa variabler attribut (privat minne) skrivUt() författare() status() Kod för skrivUt() operationer Kod för författare() Kod för status() metoder

Attribut Beskriver objektens egenskaper och tillstånd Ett attribut i en konceptuell modell skall vara enkla attribut eller datavärden Attributens typer kan exempelvis vara av typen: bool, DateTime, Number, string Andra attributtyper kan vara exempelvis: Adress, Personnummer, Telefonnummer