Programmeringsteknik för Media1 & K1 2002-11-21 Föreläsning 8 this Mer om sammansatta datatyper Vektor med objekt String[] args Klassen Vector Linda Kann, Nada
Programmeringsteknik för Media1 & K1 2002-11-21 this I en metod kan man använda this som ett objekt. this syftar då på det aktuella objektet. public Bil(String färg, double pris){ this.färg = färg; I exemplet ovan syftar this på det objekt som konstruktorn håller på att konstruera. Linda Kann, Nada
Vad är String[] args i main? Programmeringsteknik för Media1 & K1 2002-11-21 Vad är String[] args i main? När man kör programmet kan man skriva extra värden på kommandoraden. Exempel: java Minigolf4 Linda Hempa Elon Dessa värden hamnar i parametern args som är en vektor med strängreferenser. Linda Kann, Nada
String[] args - exempel Programmeringsteknik för Media1 & K1 2002-11-21 String[] args - exempel class Minigolf4 { public static void main(String[] args){ String[] namn = args; int m = namn.length; //antal spelare Linda Kann, Nada
Programmeringsteknik för Media1 & K1 2002-11-21 Vektor med objekt Det går bra att lagra referenser till objekt i en vektor. Deklaration av vektorn: Person[] spelare = new Person[m]; Skapa nytt Person-objekt för varje element: spelare[0] = new Person(namn[0]); spelare[i] refererar till Person-objektet på plats i Linda Kann, Nada
Vektor med objekt - exempel Programmeringsteknik för Media1 & K1 Vektor med objekt - exempel 2002-11-21 class Minigolf5 { public static void main(String[] namn){ int m = namn.length; Person[] spelare = new Person[m]; for(int i = 0; i < m; i++){ spelare[i] = new Person(namn[i]); spelare[i].spela(); } //for } //main } //class Minigolf5 Linda Kann, Nada
Programmeringsteknik för Media1 & K1 2002-11-21 Klassen Vector Används som en vektor men måste importeras: import java.util.Vector; Fördelar: Längden utökas automatiskt när man lägger in ett nytt element. Lätt att stoppa in element var som helst. Nackdelar Varje element blir av klassen Object. Det går inte att direkt tilldela ett element ett nytt värde - det måste plockas ut, ändras och sen stoppas in igen. Linda Kann, Nada
Metoder i klassen Vector Programmeringsteknik för Media1 & K1 2002-11-21 Metoder i klassen Vector addElement(Object element) Lägger till ett element. removeElement(Object element) Tar bort ett visst element. elementAt(int index) Returnerar det element som finns på plats index firstElement() och lastElement() Returnerar första resp sista elementet. size() Returnerar antal element. Linda Kann, Nada
Typkonvertering av objekt Programmeringsteknik för Media1 & K1 2002-11-21 Typkonvertering av objekt Allt som lagras i en Vector konverteras automatiskt till klassen Object. Raden h = street.elementAt(16); ger kompileringsfel: incompatible types found: java.lang.Object required: House Lösning: h = (House) street.elementAt(16); Linda Kann, Nada
Programmeringsteknik för Media1 & K1 2002-11-21 Exempel Vector street = new Vector(); House h; for (int i = 0; i < 22; i++) { h = new House(98,5,"bastu"); street.addElement(h); } h = (House) street.elementAt(16); stdout.println(”Antal: ” + street.size()); Linda Kann, Nada