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.

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.
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Klasser och objekt.
Klassarv och inkapsling
OOP Objekt-orienterad programmering
ObjektOrienterad analys och design. SVP Vt2009 Föreläsning nr 2, måndag 8 april kl Diskussion (kurshemsida): Om designuppgiften Om projektuppgiften.
Metoder i java Det finns två typer av metoder i java
Föreläsning 4 Python: mera om funktioner och parametrar
Arv.
Abstract & sealed.
Inkapsling.
Objektorienterad tänkande
Polymorfism.
Metoder.
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.
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.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Objektorienterad programmering i Java
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.
Klasser och objekt Klasser, objekt och instansvariabler
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.
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.
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
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 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.
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.
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.
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 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
Föreläsning 2. Allmänt STL genererar varningar i Visual C++ –”#pragma warning (disable : 4786)”
Föreläsning 9 Arv kap 8.1 Interface kap 9.2 Grafiska användargränssnitt (GUI) kap 10.
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.
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
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
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 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.
OOP&M - teori1 OOPM del II – Föreläsning vecka Sista föreläsning del II Kapitel 21 plus paket Abstrakta klasser/metoder igen Gränssnitt/Interface.
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
OOP&M - teori1 OOPM del II – Föreläsning vecka Abstrakta klasser/metoder igen Gränssnitt/Interface klasser igen tillämpat.
OOP&M - teori1 OOP2– Föreläsning vecka 0507 OBJEKT Mer om ärvning... Paket...
1 Mer om metoder, variabler, klasser och objekt. Kursboken: - Kapitel 6 - Kapitel 8.
Presentationens avskrift:

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 Book String JOptionPane

OOP - teori3 Klasser Kalle är en Människa som har ett födelseår och har ett namn och har en far och har en mor och har en skostorlek. public class Human{ int born; String name = ”okänt”; int shoeSize; Human mother; Human father; }

OOP - teori4 Klasser och objekt Används för att (ungefär) Samla besläktade metoder (instansieras inte main mfl) Beskriva en företeelse (fåtal instanser) Samla information om en datatyp (flertal instanser). Objekt kännetecknas av att: Objekt är instanser av en klass Ett objekt har ett tillstånd som definieras av värdet av attributen (instansvariablerna). De operationer man kan utföra på ett objekt motsvaras av metoderna. Variablerna och metoderna kallas klassens medlemmar (obs inte instanserna). Klassens offentliga gränssnitt är de variabler och metoder som är deklarerade public.

OOP - teori5 Instansvariabler Instansvariabler lagrar data för det aktuella objektet. Det finna en unik uppsättning instansvariabler för varje objekt man skapat. Instansvariabler når man genom syftningsoperatorn punkt. Kan initialiseras automatiskt eller explicit. Oftast ändrar man inte värdet på instansvariablerna direkt utan de deklareras private. Man kopplar sen två metoder till varje variabel (getter, setter) där man kan hämta eller ändra värdet. Getter och settermetoder inleds med get resp set

OOP - teori6 Instansmetoder Kan finnas flera i varje klass Definierar vad man kan göra med det aktuella objektet Ser ut som en vanlig metod utan static Har returtyp (void,int etc)

OOP - teori7 Klassvariabler(statisk variabel) tillhör hela klassen och används för att lagra data om existerande objekt i klassen. deklareras med nyckelordet static nås via punktnotation (om ej dold) initialiseras automatiskt eller explicit (i konstruktor) ändras oftast via metoder eller konstuktorer

OOP - teori8 Klassmetoder tillhör hela klassen deklareras static kan vara public eller private manipulerar data som rör hela klassen används för att komma åt klassvariabler

OOP - teori9 Konstruktor Används för att initiera instansvariabler mm. Döljer lokala variabler Ser ut som en metod men –Har samma namn som klassen (Versal förstabokstav) –Har ingen returtyp Anropas automatiskt då ett objekt skapas med new Kan överlagras Tom default-konstruktor finns om ej egen def.

OOP - teori10 private, public och protected Skyddsnivåer som gör att man kan styra åtkomsten till metoder och variabler –kan användas för instansvariabler och klassvariabler –kan användas för instansmetoder och klassmetoder –private medför att metoden/variabeln ej är tillgänglig utanför klassen –public medför att metoden/variabeln även är tillgänglig utanför klassen –protected innebär att metoden variabeln är tillgänglig inom paketet/projekthierarkin

OOP - teori11 UML (Unified Modeling Language) Grundnotation för en klass Klassnamn variabler konstruktorer metoder

OOP - teori12 UML (Association) Associationsstruktur Relation mellan två olika typer av objekt BilPerson 0..* 1..* En relation mellan två klasser som modellerar ett ägarskap relationen utläses som: -En bil har 1 eller flera ägare. -En person äger 0 eller flera bilar.

OOP - teori13 Aggregatstruktur Starkare koppling än en association. Objekten är fundamentala beståndsdelar i en större helhet. UML (Aggregat) Bil Kaross MotorHjul KamaxelCylinder * * 1 2..*

OOP - teori14 Ärvning Används vid relationer av typen är en/ett exempel: en människa är ett däggdjur. en hund är ett däggdjur. en tax är en hund. en hund är ett däggdjur osv

OOP - teori15 Ärvning exempel: class Vehicle{ private String licenseNbr; private double FuelC; private Person owner; } class PassengerVehicle extends Vehicle{ private int maxPass; } class Car extends PassengerVehicle{ private boolean towingHook; } class Bus extends PassengerVehicle{ private boolean toilet; }

OOP - teori16 Ärvning Car, Bus är direkta subklasser/delklasser till PassengerVehicle PassengerVehicle är direkt subklass till Vehicle Vehicle är superklass till passengerVehicle

OOP - teori17 Ärvning En subklass utvidgar(extends) sin superklass. Man skapar ofta bara objekt på lägsta nivå i klassträdet

OOP - teori18 Fördelar med Ärvning Beskrivningen liknar det verkliga systemet. Gemensamma attribut och metoder samlas på ett ställe och ärvs nedåt (De är dock inte tillgängliga om de är deklarerade private i superklassen)

OOP - teori19 Skydd private: Endast tillgängligt inom klassen public: Generellt tillgänglig protected: Tillgänglig inom klassen och i alla subklasser

OOP - teori20 Konstruktor vid ärvning Superklassens konstruktor anropas först i subklassens konstruktor med: super(eventuella parametrar); Detta initierar eventuella parametrar i superklassen.

OOP - teori21 this och super this: Refererar till aktuellt objekt super: refererar till superklassen.

OOP - teori22 Arv Vid ärvning beskriver en generell klass (superklassen) egenskaper gemensamma för en grupp specialiserade klasser (subklasser). UML (Ärvning) Fordon Passagerarfordon BilBuss MC Lastmaskiner

OOP - teori23 Kluster är en samling klasser UML (Kluster) Fordon Passagerarford on BilBuss MC Lastmaskine r KarossMotorHjul Kamaxel Cylinder * * 1 2..* Fordon

OOP - teori24 ?