Presentation laddar. Vänta.

Presentation laddar. Vänta.

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.

Liknande presentationer


En presentation över ämnet: "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."— Presentationens avskrift:

1 OOP - teori1 OOP del II– Föreläsning 5 vecka 6

2 OOP - teori2 Klasser Substantiv i singularis stavat med stor bokstav till exempel Human Dog Account Circle Book String JOptionPane

3 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; }

4 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.

5 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

6 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)

7 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

8 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

9 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.

10 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

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

12 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.

13 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..*

14 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

15 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; }

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

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

18 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)

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

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

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

22 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

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

24 OOP - teori24 ?


Ladda ner ppt "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."

Liknande presentationer


Google-annonser