140 likes | 265 Vues
Föreläsning 6. Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder. Repetition. Metoder används för att undvika kodupprepning.
E N D
Föreläsning 6 • Repetition på metoder • Referenser • Objekt som parametrar • public/private • Klassvariabler och klassmetoder
Repetition • Metoder används för att undvika kodupprepning. • Genom att använda parametrar får man en mer generell metod som om det vore ett litet program med indata (parametrar) och utdata (returvärde) • Ordning på anropsparametrar är viktig vid en metodanrop.
Fel • Kompileringsfel • Exekveringsfel • Logiskt fel
Logiskt fel brud man
Logiskt fel brud man
Repetition • En klass är en mall som beskriver hur objekten ska se ut. • En konstruktor används för att skapa ett objekt (instans) av klassen och ge objektets instansvariabler värden. • En instansvariabel hör till en specifik instans av en klass men en klassvariabler hör till alla instanser av den klassen.
Referenser till objekt • Ett objekt kan ha flera referenser (med olika namn) till sig. • När ett objekt inte har någon referens till sig så kan programmet inte längre nå instansen. Då kastas den automatiskt bort av skräpsamlaren.
Parametrar • När en anropsparameter skickas med vid ett metodanrop kopieras dess värde till den formella parametern. • Kan ett metodanrop ändra på anropsparametern? • Om den är av primitiv datatyp: VÄRDET KAN INTE ÄNDRAS • Om den är en referens till ett objekt: VÄRDEN INUTI OBJEKTET KAN ÄNDRAS • Om den är en referens till en sträng: STRÄNGEN KAN INTE ÄNDRAS
public och private • private - instansvariabler och metoder som man bara kommer åt i samma klass. private double pris; • public - instansvariabler och metoder som man kommer åt även från andra klasser. public void reklam(); • En väluppfostrad programmerare deklarerar alla sina instansvariabler som private!
Klassmetoder • Normalt anropas alltid en metod via ett objekt (en instans av klassen). Color röd = new Color(255,0,0); Color mörkröd = röd.darker(); • Om en metod deklareras med static kan den anropas direkt från klassen - utan att man behöver skapa något objekt. double x = Math.sqrt(17); • En klassmetod kan använda klassvariabler men inte instansvariabler.
Static när och varför? 200 200 nokia PC för 5000 P-HUS 200 BMW 200 limpa
Static när och varför? 200 200 nokia PC för 5000 P-HUS 200 BMW 200 limpa
Static när och varför? 200 200 nokia PC för 5000 P-HUS 200 BMW 200 limpa
Static när och varför? 199 199 nokia PC för 5000 P-HUS 199 BMW 199 limpa