Lektion 14
Javas klassbibliotek
Javas klassbibliotek API (Application Programming Interface) är uppbyggt som ett klassträd (med super- och subklasser).
Javas klassbibliotek
Javas klassbibliotek
Javas klassbibliotek
Klasshierarkin finns beskriven på
Om metoder - void (inget returvärde)
Kommer ni ihåg (från klassen Boll): public void rulla(){
//kod }
Ett bollobjekt (t ex b1) kan anropa ”sin” metod genom b1.rulla();
Kommer ni även ihåg (från klassen Boll): public void rulla(int n){
//kod }
Ett bollobjekt (t ex b2) kan anropa ”sin” metod genom b2.rulla(12);
Om metoder - icke-void-metoder
Kommer ni ihåg (från klassen Boll): public double volym(){
//kod
return v;
}
Ett bollobjekt (t ex b1) kan anropa ”sin” metod och värdet skrivs ut System.out.println( b1.volym() );
Metoden getText() definieras i klassen JTextComponent och ärvs av JTextField.
public String getText(){ //kod
return s;
}
Ett JTextField-objekt (t. ex. tf) kan anropa ”sin” metod genom och ”värdet” tilldelas String-variabeln namn:
Om metoder - överskuggning
Skapar vi en egen JPanel så finns det redan en metod paintComponent(Graphics).
Arv från JPanel som i sin tur ärver från JComponent.
Genom att vi definierar en egen paintComponent(Graphics) metod så
överskuggar vi den tidigare metoden.
T. ex. i en JPanel minPanel:
public void paintComponent(Graphics g){ g.drawLine(10, 20, 100, 200);
//etc. }
Om metoder - överlagring
Metoder med samma namn men med olika antal och/eller typ av parametrar kallas överlagrade metoder.
T. ex metoden rulla i klassen Boll: public void rulla(){
//kod }
public void rulla(int n){ //kod
Klassmetoder
Ett ”vanligt” metodanrop görs via ett objekt, t. ex: tf.getText();
där tf är ett JTextField-objekt.
Kommer ni ihåg t. ex. metoderna Integer.parseInt(...); Math.sqrt(9);
Här skapas varken ett Integer- eller Math-objekt för att använda metoderna.
Sådana metoder kallas klassmetoder och deklareras med static. public class MittProg{
public static void main(String[] args){ }
}
Metoden MittProg.main(...) anropas av java.exe, vilket startar programmet.
Klassvariabel
Tänk att en variabel inte ”hör till” ett specifikt objekt utan till hela klassen, isåfall är det en s.k. klassvariabel.
Ex:
Till klassen Bankkonto finns en klassvariabel som innehåller antalet skapade konton.
public class Bankkonto{ //instansvariabler
private static int antalKonto = 0; //klassvariabel
public Bankkonto(String n, double s){ //kod
antalKonto++;
}
public static int getAntalKonton(){ return antalKonto;
}
Klassvariabel och klassmetod - Exempel
Skapa en klass ”Matematik”, som har en klassvariabel ”PI” (som är konstant) och en klassmetod ”kvadrat”.
public class Matematik{
public static final double PI = 3.1416;
public static int kvadrat(int x){ return x*x;
} }