Fortsättningskurs i Programmering lektion 6 Johan Hjerling jhjerlin@abo.fi
Interface – ett typ av arv Fortsättningskurs i programmering 2005 – lektion 6 Interface – ett typ av arv Ett interface är ett sätt att kommunicera med någon eller något annat En fjärkontroll Ett språk Bygger på att två, eller flera, olika saker kommunicerar på samma vilkår
Interface Hello Hi Blipp-bliiip-blipp betyder ”stäng av” Fortsättningskurs i programmering 2005 – lektion 6 Interface Blipp-bliiip-blipp betyder ”stäng av” Hi Hello
Fortsättningskurs i programmering 2005 – lektion 6 Interaface Vi vill samla alla våra olika objekt så att vi kan kommunicera och använda dom lika Butik som säljer fordon: Pris: € 450,- Inventarienr.: 55050 Pris: € 7500,- Inventarienr.: 181277 Pris: € 22,- Inventarienr.: 330101 Objekten är olika men kommunicerar inventeringsinformationen på samma sätt
Fortsättningskurs i programmering 2005 – lektion 6 Interface Ett interface säger vilka metoder som MÅSTE implementeras av klassen Man skriver ett kontrakt som om att dessa metoder finns i min klass. public interface Inventerbar { public int getInventarieNr(); public double getPris(); } class Bil extends Fordon implements Iventerbar {
Interface - Comparable Fortsättningskurs i programmering 2005 – lektion 6 Interface - Comparable Comparable finns i java.lang och hör alltså till språkgrunden i java. Innehåller endast en metod int compareTo(T o); Exempel: Bil b1 = new Bil(4,false,450,'M',0,"Racingbanan"); Bil b2 = new Bil(3,true,55,'H',2,"Helst ingenstans"); int jamforare = b1.compareTo(b2);
Interface - Comparable Fortsättningskurs i programmering 2005 – lektion 6 Interface - Comparable Implementera alltså en egen compareTo-metod public int compareTo(Object o) { int returVarde = 0; if (this.getHastKrafter() < ((Bil)o).getHastKrafter()){ returVarde = -1; } else if (this.getHastKrafter() > ((Bil)o).getHastKrafter()) { returVarde = 1; } return returVarde;
Länkade listan - LinkedList Fortsättningskurs i programmering 2005 – lektion 6 Fortsättningskurs i programmering 2005 – lektion 6 Länkade listan - LinkedList Länkar Lista Noder En grundläggande datastruktur Finns färdigt i java.util.LinkedList Tillhör en grupp av så kallade Collections java.sun.com
LinkedList – grundläggande kod Fortsättningskurs i programmering 2005 – lektion 6 LinkedList – grundläggande kod Konstruktor LinkedList<Classtyp> namn = new LinkedList<Classtyp>(); Exempel: LinkedList<Bil> lista = new LinkedList<Bil>(); Nyttiga metoder: Exempel: add(E o); lista.add(b1); get(i); Bil b2 = lista.get(1); size(); int i = lista.size();
LinkedList – iterera listan Fortsättningskurs i programmering 2005 – lektion 6 LinkedList – iterera listan add(): for (int i = 0; i < 10; i++) { lista.add(new Bil(4,false,450,'M',0,"Racingbanan")); } size() & get(): for (int j = 0; j < lista.size(); j++) { System.out.println(lista.get(j)); ListIterator: ListIterator i = lista.listIterator(); while(i.hasNext()) { System.out.println(i.next());
LinkedList & Comparable Fortsättningskurs i programmering 2005 – lektion 6 LinkedList & Comparable OBS! Genererar varningar.... Sortering av listan görs enkelt med Collections.sort(lista); Att hitta max och min görs med Bil maxHKbil = Collections.max(lista); Bil minHKbil = Collections.min(lista); Men Collections är även bra för annat så som Collections.shuffle(lista); Collections.swap(lista, 3, 5);
Fortsättningskurs i programmering 2005 – lektion 6 Objekthantering Varje klass vi skapar ärver automatiskt grundklassen Object:s egenskaper I dessa egenskaper ingår equals() och getClass() getClass() kan användas för att identifiera vilken typ av klass man jobbar med Exempel: if(lista.get(i).getClass().getName().equals(“Bil")) {