• No results found

Lektion 14 - API, klassmetoder

N/A
N/A
Protected

Academic year: 2021

Share "Lektion 14 - API, klassmetoder"

Copied!
15
0
0

Loading.... (view fulltext now)

Full text

(1)

Lektion 14

(2)

Javas klassbibliotek

Javas klassbibliotek API (Application Programming Interface) är uppbyggt som ett klassträd (med super- och subklasser).

(3)

Javas klassbibliotek

(4)

Javas klassbibliotek

(5)

Javas klassbibliotek

Klasshierarkin finns beskriven på

(6)

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);

(7)

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:

(8)

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. }

(9)

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

(10)

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.

(11)

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;

}

(12)

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;

} }

(13)

Generellt om metod?

En metod är en ”fristående” programmodul som anropas av en

annan del av programmet.

Kan dela upp ett program i mindre enheter

Ger programmet en tydligare struktur

Underlättar samarbete

Metoden kan användas av andra program

Större program bör delas upp med metoder

(14)

Generellt om metod

En metod ska enbart göra en uppgift.

Ska helst kunna beskrivas med en mening.

Koden ska inte vara längre än en eller två skärmbilder.

Metoderna ska vara fristående – ändringar i en metod

ska inte innebära att man måste ändra i andra metoder

som använder metoden

Det ska visas tydligt vilka eventuella in- och utdata

metoden ska ha.

Namnet på en metod ska vara enligt regler för variabler.

Tips! Det är bra om metodnamnen påminner om vad

(15)

Uppgifter

Arbeta med uppgifter i kapitel 8.

References

Related documents

- Jag tror att de vinnande anbudsgivarna kommer lyckas bra med att utforma området i och kring Gläntan till ett attraktivt och levande bostadsområde på ett sätt som värnar om

Märkesbilder av ingivna ansökningar för nyregistrering av renmärken..

Avbrott från fadern Niklas Vasara- Hammare.. Vasara-Hammare Ella

Avbrott från modern Katarina Pavval Kroik.

Resultatet från intervjuerna visar om att det finns många hinder och problem som gör det svårt för personalen på de olika förskolorna att anmäla när de misstänker att ett barn

offentlighets- och sekretesslagen som innebär att vad som föreskrivs i tryckfrihetsförordningen om rätt att ta del av allmänna handlingar hos myndigheter i tillämpliga delar

Lista och fundera tillsammans över vilka värderingar, vad som är viktigt och värdefullt, ni vill ska ligga till grund för verksamheten för att ni ska få höra detta sägas om

Här kan du se vilka användare ni har i er förening samt skapa och bjuda in flera användare... Klicka på pilen och välj bidraget ni vill söka, klicka sedan