Presentation laddar. Vänta.

Presentation laddar. Vänta.

Föreläsning 3, Kapitel 3 Objektinteraktion - Skapa objekt som samarbetar Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David.

Liknande presentationer


En presentation över ämnet: "Föreläsning 3, Kapitel 3 Objektinteraktion - Skapa objekt som samarbetar Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David."— Presentationens avskrift:

1 Föreläsning 3, Kapitel 3 Objektinteraktion - Skapa objekt som samarbetar Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Replace this with your course title and your name/contact details. Fredric Ragnar Telefon Andreas Hedrén

2 Idag Hur objekt interagerar med andra objekt
Hur objekt består av andra objekt Diskutera typer och primitiva typer

3 En digitalklocka

4 Abstraktion och modularisering
Abstraktion är förmågan att kunna bortse från detaljer för att fokusera på ett problem på högre nivå. Modularisering är processen att dela upp en helhet till väl avgränsade delar som kan byggas och testas var för dig och samarbeta på ett bra sätt.

5 Modularisera klockans display
En display med fyra siffror? Eller två displayer med två siffror?

6 Klassen NumberDisplay
public class NumberDisplay { private int limit; private int value; //Konstruktor och //metoder utelämnade }

7 Klassen ClockDisplay public class ClockDisplay { private NumberDisplay hours; private NumberDisplay minutes; //Konstruktor och //metoder utelämnade }

8 Objektdiagram

9 Klassdiagram Notera att i klassdiagrammet så går det en pil från klassen ClockDisplay till klassen NumberDisplay. Det är för att detta gäller klasserna och inte objekten.

10 Primitiva typer vs. objekt
SomeObject obj; Objekt int i; Primitiv typ 32

11 Primitiva typer vs. objekt
SomeObject a; SomeObject b; b = a; int a; int b; 32 32

12 Källkod: NumberDisplay
public NumberDisplay(int rollOverLimit) { limit = rollOverLimit; value = 0; } public void increment() value = (value + 1) % limit;

13 Källkod: NumberDisplay
public String getDisplayValue() { if(value < 10) return "0" + value; else return "" + value; }

14 Objekt som skapar objekt
public class ClockDisplay { private NumberDisplay hours; private NumberDisplay minutes; private String displayString; public ClockDisplay() hours = new NumberDisplay(24); minutes = new NumberDisplay(60); updateDisplay(); }

15 Metodanrop public void timeTick() { minutes.increment(); if(minutes.getValue() == 0) //Det slog just över hours.increment(); } updateDisplay();

16 Intern metod /** * Uppdatera den interna stängen som * representerar displayen */ private void updateDisplay() { displayString = hours.getDisplayValue() + ":" + minutes.getDisplayValue(); }

17 ClockDisplay objektdiagram

18 Objekt som skapar objekt
I klassen NumberDisplay: public NumberDisplay(int rollOverLimit); formell parameter I klassen ClockDisplay: hours = new NumberDisplay(24); egentlig parameter

19 objekt.metodNamn(parametrar);
Metodanrop Internt metodanrop updateDisplay(); Externt metodanrop minutes.increment(); //Generellt objekt.metodNamn(parametrar); När det gäller interna metodanropet kan man även använda sig av självreferensen ”this” för att förtydliga vilket objekt som anropar metoden. Exempelvis för det interna anropet ovan: this.updateDisplay();

20 Frågor att ställa sig efter föreläsningen
Vad är det egentligen som skiljer mellan typer från primitiva typer? Vilka olika primitiva typer finns det? Hur stora eller hur små värden kan lagras i den primitiva typen int?


Ladda ner ppt "Föreläsning 3, Kapitel 3 Objektinteraktion - Skapa objekt som samarbetar Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David."

Liknande presentationer


Google-annonser