Objekt, Klass och Instans Analys av systemet ger mer eller mindre detaljerade objekt Objekten sorteras och klass-diagram ritas upp där relationer reds.

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.
OOP Objekt-orienterad programmering
Föreläsning 1.
ObjektOrienterad analys och design. SVP Vt2009 Föreläsning nr 2, måndag 8 april kl Diskussion (kurshemsida): Om designuppgiften Om projektuppgiften.
Föreläsning 4 Python: mera om funktioner och parametrar
Arv.
Objektorienterad tänkande
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.
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Upplysning C++ / Sven "-E" Rosvall1 C++ för den som tror sej kunna C++ Sven Rosvall
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Alice in Action with Java
i olika programmeringsspråk
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.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT C++ - förbättrat C?  Procedurellt program ser ut som C: sekvens, selektion, iteration  /* kommentar.
Sid 1 CD5250 OOP med C++ Daniel Flemström MDH/IDT CD5250 OOP med C++
Programmering i C# 3. Klasser.
Repetition inför slutprovet
Klasser och objekt Klasser, objekt och instansvariabler
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.
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.
Polymorfism.
Föreläsning 4. Arv – bakgrund (kap. 9) Hund pälsfärg favoritben smutsa_ned() ät_katt() Katt pälsfärg smutsa_ned() klös_soffa() Kanin pälsfärg slaktvikt.
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Arv.
Programmeringsteknik för Media1 & K1
1. En infrastruktur för programutveckling
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.
Riktade listor i C och Java Lösning till gruppövning 1.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 6. Klassmallar Templates kan givetvis även användas för klasser –Standardutseende template // Klassdefinition (*.h) class C { returtyp metod(parametrar…);...
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 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.
1. Ett problem/uppgift.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
Föreläsning 2. Allmänt STL genererar varningar i Visual C++ –”#pragma warning (disable : 4786)”
1 Föreläsning 8 Mer om klasser och objektorientering.
Arv repetition Arv = Är relation Tillgänglighet public, protected och private. Överklass ös Direkt härledd underklass dhu: Class dhu : public ös{} Indirekt.
Programmering i C# Laborationer.
Anders Sjögren Deklarationsområde och funktioner.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
F2 1 Programmeringsteknik, 4p vt-00 Kommentarer Allt mellan /* och */ Varje kommentar byts ut mot en blank av kompilatorn /* Exempel på uttryck, tilldelningsoperatorn.
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Funktionsmall template void myfunc(Type * arr, int n) { // kod; // objekt av typ Type kan deklareras.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Konstanter float pi; const float pi = ; float *pip = π //Kompileringsfel! const float.
Föreläsning 5 Klasser och instanser
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
1 Föreläsning 6 Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
Föreläsning 3. Klasser class namn { public: deklarationer av synliga medlemsfunktioner och datamedlemmar protected: private: deklarationer av gömda medlemsfunktioner.
TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder.
TDP004 Objektorienterad Programmering Fö 7 Objektorienterad design, tips och råd.
TDP004 Objektorienterad Programmering Fö 5 Minneshantering.
TDP004 Objektorienterad Programmering Fö 6 Objektorientering forts.
TDP004 Objektorienterad Programmering Fö 8 Sammanfattning
Detaljer i exception-hantering
Objektorienterad programmering forts
Föreläsning 5: Att använda klasser & objekt
Presentationens avskrift:

Objekt, Klass och Instans Analys av systemet ger mer eller mindre detaljerade objekt Objekten sorteras och klass-diagram ritas upp där relationer reds ut En instans skapas med en klass som mall

Klassrelationer (har, känner till är) En bil har en motor En annan bil har en annan motor, ej samma En spelare känner till en kortlek En annan spelare känner till samma kortlek En bil är ett fordon Ett tåg är också ett fordon

Klassrelationer C++ Har: Instansen av flight skapar en klock instans. Flight.h #include ”klocka.h” Class Flight { Public: Flight(int dep_h,int dep_m) {dep(dep_h,dep_m)}; Private: Klocka dep,arr; } Känner till: Konstruktorn av spelare får in en referens (eller en pekare) till kortleken. Spelare.h #include ”kortbunt.h” Class Spelare { Public: Spelare(Kortbunt& kortbunt) { leken = Kortbunt} int spela(); Private: Kortbunt hand Kortbunt& leken; }

Namespace (1/5) I lab1 ser man using namespe std; Det betyder att man använder sig av konstanter och funktioner som inte ”ses” utanför std namnrymden. Std är namnet för STL (Standard Template Library) Man vill ”gömma” stl för de som inte använder stl.

Namespace (2/5) rectangle.h //deklarationer const int width=30; const int height=10; //mer I funktionen f i filen hej.cpp vill man använda sig av både rectangle och square. Variabel width finns i båda filerna. square.h //deklarationer const int width=50; //mer Hej.cpp #include”rectangle.h” #include ”square.h” void f() { //square calulations int SquareWidth=width; //... } Vilken width ska användas?? -Kompilatorn kan inte sätta ett värde på variablen width.

Namespace (3/5) En lösning är att använda sig av namespaces. rectangle.h Namespace eva { //deklarationer const int width=30; const int height=10; //mer } square.h Namespace kalle { //deklarationer const int width=50; //mer } Hej.cpp #include”rectangle.h” #include ”square.h” void f() { //square calulations int SquareWidth=kalle::width //rectangle calulations int RectWidth=eva::width }

Namespace (4/5) Hej.cpp #include”rectangle.h” #include ”square.h” void f() { using namespace kalle //square calulations int SquareWidth=width //rectangle calulations int RectWidth=eva::width } Hej.cpp fungerar också

Namespace (5/5) Hej2.cpp går inte att kompilera. Man kan bara utöka namespaces, inte förändra redan definerat beteende. Hej2.cpp #include”rectangle.h” #include ”square.h” void f() { using namespace kalle //square calulations int SquareWidth=width using namespace eva //rectangle calulations int RectWidth=width }