OOP&M - teori1 OOPM del II – Föreläsning vecka Abstrakta klasser/metoder igen Gränssnitt/Interface klasser igen tillämpat
OOP&M - teori2 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 - 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 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 - teori5 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 tidigare att en objekt-variabel kan deklareras med superklassens typ men ändå använda metoder från subklass.
OOP&M - teori6 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 - teori7 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 - teori8 Skydd Skyddsnivå Tillgänglig: publicprotectedpackageprivate Inom samma klassJa Klass i samma paket Ja Nej Subklass i annat paket Ja Nej Annat paketJaNejNajNej
OOP&M - teori9 Package Paket Används för att samla ett antal klasser så att de kan importeras av en annan klass. Skall ha unikt namn ofta används domännamn baklänges Klassfilerna placeras i en mappstruktur som motsvarar paketnamnet. Syntax för paket //måste stå på första raden package se.mah.k3.mypackage; /*importeras sen med (classpath till biblioteket där klasserna finns måste anges)*/ import se.mah.k3.mypackage.*; Medför att det är enklare att använda färdiga klasser i nya program
OOP&M - teori10 Package Paket se mah k3 shapes lut mypackage Klassfilerna ligger för paketet se.mah.k3.mypackage i mappen mypackage Javafilerna ligger för paketet se.mah.k3.mypackage i mappen mymapp mymapp
OOP&M - teori11 Classpath Anger var kompilatorn söker efter klasser. Rotkatalogen för klassfilerna skall anges Kan skrivas ut och anges på PC med vid DOS- prompt På PC skriver man till exempel set CLASSPATH = %CLASSPATH%;c:\myfolder antingen vid kommandoprompt eller via inställningar i My Computer Kan anges i Jcreator via project settings Antingen anges rotmappen för klassfilerna eller en JAR- fil (packade javafiler)
OOP&M - teori12 Sortering o sökning i Arrayer o Listor Med hjälp av statiska metoder i två klasser (Arrays och Collections) kan man sortera o söka i listor och arrayer. För att detta skall fungera för klasser utan naturlig ordning måste man implementera gränssnittet Comparable.
OOP&M - teori13 Comparable Comparable har en metod: public int compareTo(Object o)Object –Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object. Detta kallas ”naturlig ordning” eller natural ordering.
OOP&M - teori14 Gränsnittet Comparable Finns implementerat för till exempel Arrayer som int[], String[] mfl. Arrays har statiska metoder för att sortera arrayer dessa använder gränssnittet Comparable. Metoden equals() som ärvs från Object används när man söker i en Array. Om man vill ändra sökkriterier kan man överskugga equals()
OOP&M - teori15 ArrayList o Listor/samlingar I dessa söker man med statiska metoder från klassen Collections i stället för Arrays.
OOP&M - teori16 Gränssnittet Comparator Används om man vill ha flera sätt att söka i en Array eller en Lista. Skapa en egen klass som implementerar Comparator samt överskugga metoden compare.
OOP&M - teori17 Threads Synonymer: Multitasking MultiThreaded Trådade program Ger möjlighet att utföra saker till synes samtidigt. Detta sker genom att man delar processortiden mellan de processer som körs.
OOP&M - teori18 Threads Används för att: inte programmet skall bli upptaget med CPU-intensiva (tex Graphics-objekt) uppgifter så att till exempel avsluta-knappen ej fungerar. Skapar helt nya problem man måste kunna skydda gemensamt tillgänglig data man måste kunna vänta på andra trådar. Trådar är dock mycket användbara när man arbetar med Grafiska gränssnitt samt multimedia. Nödvändigt för många I/O program.
OOP&M - teori19 Threads Skapas som objekt som utvidgar klassen Thread och överskuggar metoden run(). Tråden startar genom att metoden start() anropas. exempel på trådad klass som startar automatiskt. public class MyThread extends Thread { private boolean stop=false; public MyThread(){ this.start(); } public void run(){ while(!stop){ //gör något try{sleep(1000);}catch(InterruptedException e){} } public void stopThread(){ stop=true; }
OOP&M - teori20 ?