Föreläsning 5 Arrayer & ArrayList Hur man använder API:n Grafik (Frame, Button, Graphics)
Array Array är en indexerad lista av element som har samma typ. Man kan både ha arrayer av primitiva typer (int, double, char ,...) och arrayer av referens datatyper (String, … ). talArray int[] talArray=new int[6]; int t= talArray[0]; Index: 0 1 2 3 4 5 talArray[4]= 121; 121 18 talArray[5]= 18;
String[] namnArray=new String[6]; namnArray[0] =”Vahid”; namnArray Index: 0 1 2 3 4 5 null null null null null null ”vahid”
String[] namnArray=new String[6]; namnArray[0] =”Vahid”; namnArray[1]= ”johan”; namnArray Index: 0 1 2 3 4 5 null null null null null ”vahid” ”Johan”
String[] namnArray=new String[6]; namnArray[0] =”Vahid”; namnArray[1]= ”johan”; namnArray Index: 0 1 2 3 4 5 null null null null ”vahid” ”Johan”
String[] namnArray=new String[6]; namnArray[0] =”Vahid”; namnArray[1]= ”johan”; namnArray[4]= namnArray[1]; namnArray Index: 0 1 2 3 4 5 null null null null ”vahid” ”Johan”
String[] namnArray=new String[6]; namnArray[0] =”Vahid”; namnArray[1]= ”johan”; namnArray[4]= namnArray[1]; namnArray Index: 0 1 2 3 4 5 null null null ”vahid” ”Johan”
Array har ett fält som heter length och den visar arrayens storlek. t.ex: int[] enArray=new int[30]; enArray.length; //har värdet 30
ArrayList ArrayList är en klass som finns i paketet util, och därför måste man importera detta paket när man vill använda ArrayList. ArrayList har en del metoder som underlättar arbete med instanser av denna klass. Exampel: ArrayList minLista= new ArrayList(); minLista.size(); //returnerar 0 minLista.addElement(”element 1 i listan”); minLista.size(); //returnerar 1 minLista.add(”element 2 i listan”);
Skillnad mellan Arrayer och ArrayList När man skapar en Array måste man ange storleken på arreyen från början. Storleken kan sedan inte ändras, men när man vill skapa en instans av en ArrayList så behöver man inte ange bestämma storleken från början och storleken ändras automatisk när man lägger till eller tar bort. ArrayList kan inte innehålla primitiva typer d.v.s: minVek.add(12); är omöjligt minVek.add(’c’); är omöjligt För att: boolean add(Object o); (kolla i API:n) Som syns metoden add tar endast emot en instans av klassen Object som parameter. (observera alla klasser i java är en underklass till klassen Object)
minLista element ArrayList minLista= new ArrayList(); minLista.add(”Första element”); minLista.add(”Andra element”); String element=(String)minVek.get(1); minLista.remove(0); Instans av klassen ArrayList minLista ”Första element” ”Andra element” element
minLista element ArrayList minLista= new ArrayList(); minLista.add(”Första element”); minLista.add(”Andra element”); String element=(String)minVek.get(1); minLista.remove(0); Instans av klassen ArrayList minLista ”Första element” ”Andra element” element
minLista element ArrayList minLista= new ArrayList(); minLista.add(”Första element”); minLista.add(”Andra element”); String element=(String)minVek.get(1); minLista.remove(0); Instans av klassen ArrayList minLista ”Andra element” element
Matriser Matriser kan man skapa av två hakvektorer (array). Exempel: int[][] heltalMatris= new int [3][6]; heltalMatris heltalMatris[0][2]=124; andra index 0 1 2 3 4 5 1 2 124 Första index
Kombination med slingor Eftersom att varje element i array och ArrayList har ett index så kan man kombinera slingor med arrayer. Exempel: Skriv ett program som frågar användaren efter 10 ord och skriver ut de ord som har udda antal tecken först och jämna antal tecken sist.
Hur man använder API:n API:n består av en hel del paket som innehåller massa definierade referens datatyper som vi ibland kallar de klasser. Varje klass en del metoder. Metoder som har ordet static används på ett annat sätt än metoder som inte innehåller static. Beskrivning om parameter typ och retur-typ talar om hur metoden ska anropas. I den här kursen kommer vi använda paketen util, lang, io, awt, swing, applet mest av alla andra.
Hur man använder API:n För att anropa metoder som inte har ordet static så måste man skapa ett objekt av klassen. För att anropa metoder som har ordet static i deklarationen så ska man använda namnet på klassen. Antalet anrops parametrar och deras typ måste komma överens med antalet formella parameter.
Grafik i java Paketet awt (Abstract Window Tools) innehåller klasser och metoder som underlättar att skapa fönsterbaserat program. Frame är en klass som man kan skapa ett fönster med. Button är en klass som man kan skapa en knapp som man kan klicka på.
Exempel av Frame //skapar ett fönster med en titel Frame f= new Frame(”ett cool fönster”); // sätter storlek på fönstret 100 pixlar // i bredden och 200 pixlar ihöjden f.setSize(100,200); //visar fönstret på skärmen f. show();
Frame är en Container I awt finns en graphic komponenter, en del av de är Container d.v.s. Att de kan innehålla andra komponenter. Frame är en container. Man kan därför lägga till andra komponenter som Button (knapp) i Frame.
Exempel av Button f.setSize(100,200); //skapa en knapp Frame f= new Frame(”ett cool fönster med knapp”); f.setSize(100,200); //skapa en knapp Button b = new Button(”en värdelös knapp”); // lägg till knappen i fönstret annars kommer // inte att synas f.add(b); f. show();