Presentation laddar. Vänta.

Presentation laddar. Vänta.

Att förstå klassdefinitioner Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar.

Liknande presentationer


En presentation över ämnet: "Att förstå klassdefinitioner Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar."— Presentationens avskrift:

1 Att förstå klassdefinitioner Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar Telefon Andreas Hedrén Föreläsning 2, Kapitel 2

2 Idag Fortsätta att gå igenom fler nya termer –Fält –Konstruktorer –Metoder –Parametrar Titta på delar av Java-syntax – grammatiken i programmeringsspråket –Tilldelningssatser –Villkorssatser Introduktion till UML

3 Automatisk biljettmaskin – utifrån sett Vi skall undersöka beteendet hos en typisk biljettmaskin. –Vi kommer att använda ”naive ticket-machine” projektet. –Maskinen ger biljetter till ett fast pris –Hur matas pengar in i maskinen? –Hur håller maskinen reda på hur mycket pengar som matats i?

4 Automatisk biljettmaskin – inifrån sett Genom att interagera med objektet får vi en bild av vilket beteende det har Genom att titta inuti objektet ser vi hur objektet gör för att åstadkommma beteendet Alla Java-klasser ser liknande ut inuti

5 Grundläggande struktur för klasser public class TicketMachine { Inre delen av klassen visar vi inte } public class ClassName { Fält Konstruktorer Metoder } Det yttre skalet för TicketMachine Innehållet en klass

6 Fält Fält lagrar värden för ett objekt De kallas också instansvariabler Använd Inspect för att titta på fälten i ett objekt Fältet definierar tillståndet hos objektet public class TicketMachine { private int price; private int balance; private int total; Konstruktor och metoder visas inte. } private int price; Synlighetsmodifierare typ variabelnamn

7 Konstruktorer Konstruktorer initierar ett objekt De har samma namn som sin klass De lagrar startvärden/initialvärden i fälten De tar ofta emot värden i parametrar för detta public TicketMachine(int ticketCost) { price = ticketCost; balance = 0; total = 0; }

8 Skicka data med parametrar

9 Rekapitulering av termer Klass Attribut Konstruktor Parameter Metod public class TicketMachine { private int price; private int balance; private int total; public TicketMachine(int ticketCost) { price = ticketCost; balance = 0; total = 0; } public int getPrice() { return price; }

10 Tilldelning Värden lagras i fält och variabler med hjälp av tilldelningssatser. –variable = expression; –price = ticketCost; En variabel lagrar endast ett värde, så värden som lagrades i variabeln tidigare försvinner.

11 ”Accessor”-metoder Metoder implementerar beteendet hos objekt ”Accessor”-metoder (eng: ”accessors” eller ”getters”) ger information om objekt Metoder består av ett huvud och en kropp Huvudet definierar metodens signatur public int getPrice() Kroppen innehåller metodens satser

12 ”Accessor”-metoder, mer… public int getPrice() { return price; } returtyp metodnamn Början och slut på metodens kropp (block) retursats synlighetsmodifierare

13 ”Mutator”-metoder Har en liknande struktur: huvud och kropp Används för att mutera (ändra) ett objekts tillstånd (eng: ”mutators” eller ”setters”) Fixas genom att ändra värdet på ett eller flera fält –Har typiskt tilldelningssatser –Har typiskt parametrar

14 ”Mutator”-metoder, mer… public void insertMoney(int amount) { balance += amount; } returtyp ( void ) metodnamn parameter synlighetsmodifierare tilldelningssats fält som ändras

15 Att skriva ut från metoder public void printTicket() { // Simulate the printing of a ticket. System.out.println("##################"); System.out.println("# The BlueJ Line"); System.out.println("# Ticket"); System.out.println("# " + price + " cents."); System.out.println("##################"); System.out.println(); // Update the total collected with the balance. total += balance; // Clear the balance. balance = 0; }

16 Tankar om biljettmaskiner Deras beteende är otillräckligt på flera sätt: –Ingen koll på summor som matats i –Ingen växel –Ingen koll på att initieringen är vettig Hur kan vi fixa detta? –Behöver ett mer sofistikerat beteende

17 Att göra val public void insertMoney(int amount) { if(amount > 0) { balance += amount; } else { System.out.println("Use a positive amount: " + amount); }

18 Att göra val, mer… if(gör något test) { Gör satserna här om testet ger resultatet sant } else { Gör satserna här om testet ger falskt som resultat } ‘if’ nyckelord Boolskt villkor som skall testas – ger resultatet sant eller falskt Åtgärder om villkoret är sant Åtgärder om villkoret är falskt ‘else’ nyckelord

19 Lokala variabler Fält är en sorts variabler –De lagrar värden så länge som objektet lever –De kan kommas åt från hela klassen Metoder kan ha mer kortlivade variabler –De finns bar aunder tiden som metoden körs –De kan bara kommas åt från metoden

20 Lokala variabler public int refundBalance() { int amountToRefund; amountToRefund = balance; balance = 0; return amountToRefund; } En lokal variabel Ingen synlighets- modifierare

21 Introduktion till UML Vi har tittat på de centrala begreppen för de byggstenar som finns för en klass. Vi kommer att fortsätta med att beskriva system som består av fler klasser. Det blir ju fort många detaljer och då vill man många gånger kunna presentera en förenkling av systemet. Det gör man genom att beskriva en modell av systemet. Till vår hjälp har vi då UML (Unified Modeling Language). Det är ett antal diagram för att beskriva dessa modeller. Vi börjar att titta på klassdiagrammet.

22 Källkod vs. klassdiagram public class TicketMachine { public int price; public int balance; public int total; public TicketMachine(int ticketCost) { price = ticketCost; balance = 0; total = 0; } public int getPrice() { return price; }

23 Sammanfattning – klassers beståndsdelar Klassers kroppar innehåller: fält, konstruktorer och metoder. Fält lagrar värden som bestämmer/definierar objektens tillstånd Konstruktorer initierar objekten. Metoder implementerar objektens beteende. Ett klassdiagram kan visa en förenklad bild av en klass.

24 Sammanfattning – fält, parametrar och variabler Fält, parametrar och lokala variabler är variabler allihop Fält består under ett objekts livstid Parametrar används för att ta emot värden in till en konstruktor eller metod Lokala variabler används för att tillfälligt lagra värden.

25 Sammanfattning – styrande satser Objekt kan ta beslut eller göra val med hjälp av villkors-satser (if-satser) Ett test som ger sant eller falskt tillåter att en av två alternativa händelseutvecklingar kan väljas. (En av två olika vägar väljs)


Ladda ner ppt "Att förstå klassdefinitioner Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar."

Liknande presentationer


Google-annonser