Presentation laddar. Vänta.

Presentation laddar. Vänta.

Föreläsning 4 Klasser Och Objekt. Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning.

Liknande presentationer


En presentation över ämnet: "Föreläsning 4 Klasser Och Objekt. Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning."— Presentationens avskrift:

1 Föreläsning 4 Klasser Och Objekt

2 Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning Objekt skapas från klassbeskrivningen - instansieras Tips! En klass kan ses som en ritning. Den beskriver ett objekts form, men inte dess innehåll.

3 Klassdeklaration En klass börjar med en klass- deklaration Klassens innehåll ramas in med klammrar { } I klassen finns medlemmar Fält Metoder Innehåller även eventuellt arv och åtkomstmodifierare

4 Exempel På En Klass Skriv en klass som ska representera en geometrisk punkt. Klassen ska innehålla information om punktens x och y koordinat. Det ska finnas möjlighet att sätta nya värden på punktens koordinater samt att skriva ut punkten på skärmen. Punkt - xkord : int - ykord : int + setx(x : int) + sety(y : int) + print() : void UML

5 public class Punkt { // Inledande vänsterklammer } // Avslutande högerklammer Klassdeklaration Exempel Notera! En klass kan aldrig deklareras som privat (private). (åtkomstodifierare) class Namn (extends) Vissa modifierare kan uteslutas

6 Fält (attribut) Representerar ett objekts information Lagras normalt som private Behöver andra tillgång till fält, skapa publika set- och get-metoder Kan deklareras vart som helst i klassdeklarationen (normalt överst)

7 private int xkord; Fält – Deklarera Skilj mellan fältvariabler och andra variabler. T.ex lokala variabler som deklareras i en metod. Åtkomstmodifierare Fälttyp Fältnamn Fält kan vara primitiva typer eller objekt Exempel: private String namn; private int antalSidor; private int xkord; private double langd; private Button ok; private Person p1; private Punkt start;

8 Metoder Beskriver de tjänster som klassen tillhandahåller Innehåller den kod som verkligen utför något Går ej att deklarera metoder utanför en klass

9 public void setX(int x) Metoder – Deklarera En metod är åtkomlig i hela den egna klassen. Dvs den kan anropas från alla andra metoder i klassen Åtkomstmodifierare Returtyp Metodnamn Kodsatser inom matchande klamrar Parametrar

10 Objekt Skapas av klassen Är en instans av klassen Kan skapas var som helst i applikationen Kan använda publika metoder och fält

11 Att Skapa Objekt Enda sättet att skapa är med new En variabel av primitiv typ lagrar värdet, en referensvariabel lagrar adressen till objektet. Punkt p1 = new Punkt(); Punkt p1; p1 = new Punkt(); Eller new returnerar en referens som lagras i p1 p1 är av typen Punkt p1 : Punkt xkord = 0 ykord = 0 + setX(int) : void + setY(int) : void + print() : void objref p1

12 Anropa Metoder Publika metoder kan anropas Anrop görs med punktnotation PunktTest p1 : Punkt main(String[]): void setX(100) p1.setX(100); Punkt - xkord : int - ykord : int + setx(x : int) + sety(y : int) + print() : void Använder 1..*1..1

13 Fält – Räckvidd Fält på klassnivå finns åtkomlig i hela klassen (metoder) Fält i java har en räckvidd som sträcker sig genom hela klassen där den är deklarerad. public class Rackvidd { private int tal1; public void metod1() { // tal1 finns tillgänglig här int tal2 = tal1 + 10: } public void metod2() { // tal1 finns tillgänglig här System.out.println(tal1); // men inte tal2 } } Försök om möjligt att använda så lokala variabler som möjligt.

14 Fält – Initiera Tilldelar fältet ett initialvärde Kan ske vid deklarationen, i konstruktorn eller i annan metod Sker i den ordning fälten skrivs Fält initieras innan konstruktorn körs Finns inget initieringsvärde sätts primitiva fält till 0 och objekt- referenser till null

15 Initiering - Exempel public class Initiering { // Exempel på initiering av fält private String s1; // får värdet null private String s2 = ”Hello”; private char ch = s2.charAt(0); private int t; // får värdet 0 private final int x = 100; // kan ej förändras private double y = 3.14 * 500; private double z1 = x * y; private double z2 = metod1(); private Person p1 = new Person(); // OBS! Deklarationen av z1 hade inte kunnat stå före // deklarationen av x och y! }

16 Åtkomst Fyra olika åtkomstformer finns för fält och metoder public protected private paketåtkomst

17 public (publik åtkomst) Tillgänglig för alla Kan användas inom klassen Kan användas av de som skapat objekt av klassen Metoder är normalt publika

18 protected (skyddad åtkomst) Kan användas inom klassen Kan användas av subklasser (arv) Kan användas av klasser som ligger i samma paket Kan inte användas av de som skapat objekt av klassen Används normalt för fält i klasser som ska ärvas (superklasser)

19 private (privat åtkomst) Kan endast användas inom klassen Kan inte användas av de som skapat objekt av klassen Kan inte användas av subklasser Kan inte användas av klasser som ligger i samma paket Används normalt för fält i klasser (som inte ska ärvas)

20 Paketåtkomst Om ingen åtkomstmodifierare anges erhålls automatiskt paketåtkomst Åtkomlig (public) inom ett paket Ej åtkomlig (private) utanför paketet Bör inte användas Använd protected istället


Ladda ner ppt "Föreläsning 4 Klasser Och Objekt. Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning."

Liknande presentationer


Google-annonser