OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser
OOP&M - teori2 Objekt 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&M - teori3 Ä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&M - teori4 Ä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&M - teori5 Ärvning Car, Bus är direkta subklasser/delklasser till PassengerVehicle PassengerVehicle är direkt subklass till Vehicle Vehicle är superklass till passengerVehicle Allmänt En subklass utvidgar(extends) sin superklass. Man skapar ofta bara objekt på lägsta nivå i klassträdet
OOP&M - teori6 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&M - teori7 Skydd private: Endast tillgängligt inom klassen public: Generellt tillgänglig protected: Tillgänglig inom klassen och i alla subklasser och inom aktuellt paket
OOP&M - teori8 Ärvning Superklassens konstruktor anropas först i subklassens konstruktor med: super(eventuella parametrar); Detta initierar eventuella parametrar i superklassen. this: Refererar till aktuellt objekt super: refererar till superklassen
OOP&M - teori9 Abstrakt klass Används på en klass för att förhindra att klassen instansieras. En subklass kan instansieras om den implementerar samtliga abstrakta metoder i superklassen Används på en metod i en superklass för att styra så att en metod måste implementeras i subklassen. Syntax för metod //se ut som vanlig metod utan implementation public abstract void myMetod(); Medför som tidger att en objekt-variabel kan deklareras med superklassens typ men ändå använda metoder från subklass.
OOP&M - teori10 Interface Gränsnitt Används på en klass för att styra så att vissa metoder måste implementeras i den klass som använder gränssnittet. Syntax för interfaceklass //se ut som vanlig metod utan implementation public interface myName{ public void mymethod(parameters); } Medför att en objekt av helt olika typ kan använda samma metoder genom att en variabel deklareras av intrefacetypen. Kan ej instansieras och har ingen konstruktor Kan endast ha variabler av typen static final.
OOP&M - teori11 UML (Unified Modeling Language) Grundnotation för en klass Klassnamn variabler konstruktorer metoder
OOP&M - 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&M - 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&M - teori14 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&M - teori15 Kluster är en samling klasser UML (Kluster) Fordon Passagerarford on BilBuss MC Lastmaskine r KarossMotorHjul Kamaxel Cylinder * * 1 2..* Fordon
OOP&M - teori16 Arv Vid ärvning beskriver en generell klass (superklassen) egenskaper gemensamma för en grupp specialiserade klasser (subklasser). UML (Abstrakta klasser) > Fordon > Passagerarfordon BilBuss MC Lastmaskiner
OOP&M - teori17 Interface Vid ärvning beskriver en generell klass (superklassen) egenskaper gemensamma för en grupp specialiserade klasser (subklasser). UML (Interface/Gränssnitts klasser) > Shape CircleRectangle > Citizen PlummerGardener > Drawable _______________ +draw
OOP&M - teori18 Javadoc Används för att automatiskt skapa dokumentation. /**kommentarer placerade här kommer med*/ Kommentarerna kan innehålla enkla HTML-taggar fet Kommentarer placeras före klass och metod och variabelbeklarationer och skall var kortfattade Det finns ett antal parametrar man kan ange till exempel (specificerar vad som skall var i eninparameter) (Vad som returneras –m.fl javadoc –d *.java skapar dokumentation Mer info på
OOP&M - teori19 Nyckelordet instanceof Ibland behöver man avgöra om ett objekt är en instans av en viss klass: Detta är till exempel användbart för att avgöra om man kan omvandla (casta) ett objekt till en viss klass. if (Object instanceof Klass){ Do something }
OOP&M - teori20 ?