Presentation laddar. Vänta.

Presentation laddar. Vänta.

Föreläsning 5 Referenser Objekt som parametrar public/private static this.

Liknande presentationer


En presentation över ämnet: "Föreläsning 5 Referenser Objekt som parametrar public/private static this."— Presentationens avskrift:

1 Föreläsning 5 Referenser Objekt som parametrar public/private static this

2 Repetition Ett objekt har instansvariabler och metoder. En klass är en mall som beskriver hur objekten ska se ut. En konstruktor kan användas för att ge objektets instansvariabler värden när det skapas.

3 Referenser De variabler som används för objekt är referenser, dvs de håller reda på var i minnet objektet lagrats. När man vill göra något med ett objekt måste man gå via referensen.

4 Tilldelning - primitiva datatyper Vid tilldelning kopieras värdet från högerledet och lagras i variabeln i vänsterledet: Efter satsen x = y; xy xy

5 Tilldelning - referenser För referenser till objekt är det istället minnesadressen till objektet som kopieras: volvo saab saab = volvo;

6 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

7 public och private private - instansvariabler och metoder som man bara kommer åt i samma klass. private int ålder; public - instansvariabler och metoder som man kommer åt även från andra klasser. public void skrivNamn(); En väluppfostrad programmerare deklarerar alla sina instansvariabler som private !

8 static - variabler Normalt har varje objekt sina egna data. En variabel kan deklareras med static static int antal; Då kommer dess minnesutrymme att vara gemensamt för alla objekt ur klassen - om värdet ändras för ett objekt ändras det alltså för alla. Dessa variabler brukar kallas klassvariabler.

9 static - metoder 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 static-metod kan inte komma åt instansvariabler.

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

11 import java.io.*; import java.awt.*; class BerrasBegBilar { public static void main(String[] args) { Bil alfa = new Bil(röd,500000,0.95); Bil citroen = new Bil(gul,40000,0.7); System.out.println("Det finns " + Bil.antalbilar + " bilar inne."); citroen.reklam(); } } //BerrasBegBilar

12 class Bil { // Instansvariabler private String färg; private double pris; private double literPerMil; // Klassvariabler public static int antalbilar = 0; // Här deklareras konstruktorn public Bil(String färg, double pris, double lpm) { this.färg = färg; this.pris = pris; literPerMil = lpm; antalbilar++; } // konstruktorn Bil // Här deklareras metoden reklam() public void reklam() { System.out.println("Denna bil är ” + färg); System.out.println(”drar "+literPerMil+" l/mil!"); } // metoden reklam


Ladda ner ppt "Föreläsning 5 Referenser Objekt som parametrar public/private static this."

Liknande presentationer


Google-annonser