Presentation laddar. Vänta.

Presentation laddar. Vänta.

Alice in Action with Java

Liknande presentationer


En presentation över ämnet: "Alice in Action with Java"— Presentationens avskrift:

1 Alice in Action with Java
Modularisering I Java Skapa egna metoder i Java Definiera parametrar och skicka argument Anropa metoder och ta emot returvärden Skapa egna klasser i Java Skilja på klassmetoder och instansmetoder Alice in Action with Java

2 Alice in Action with Java
Metoder i java Mönster för en java-metod: [Accessmode] [static] Returntype Methodname (Params) { Statements [return expression] } Accessmode: public, private, protected Static: ordet inkluderas om det är en klassmetod Returntype: typen på det värdet som returneras. Om inget värde returneras skrivs void. Params: En kommaseparerad lista av parameterdeklarationer för denna metod. Alice in Action with Java

3 Skapa program med egna klasser på olika sätt
Du vill fylla ett rum med ballonger. Frågan är: Hur många ballonger ska du köpa? Lösning: Fråga användaren om radien på ballongen Läs in radien från tangentbordet Beräkna volymen av en ballong Beräkna volymen av rummet (dimensionerna är deklarerade som konstanter) Beräkna antalet ballonger som behövs för att fylla rummet Skriv ut antalet på skärmen Alice in Action with Java

4 Lösning 1: metodbibliotek
Första beslutet: skriv metoder för att beräkna volymerna (dessa kan kanske återanvändas) Andra beslutet: lagra metoderna i separata klasser för att göra programmet mer modulärt Tre klasser behövs för att implementera programmet: Balloonprank: innehåller main() (drivrutinen) Sphere: bibliotek som innehåller sfär-metoder Box: bibliotek som innehåller box-metoder Alice in Action with Java

5 Lösning 2: Objekt-orienterat
Denna lösning fungerar, men använder inte den fulla kapaciteten hos en klass… Metoderna används oberoende av objekt Ex. Box.volume(): Dimensionerna måste skickas med för varje metod-anrop Alternativ: skapa klasser som kan bli mallar för objekt Dessa ska innehålla instansmetoder och instansvariabler Vi kan då sända meddelanden till objekt Alice in Action with Java

6 Alice in Action with Java
Box-klassen Vi gör om Box-klassen så att vi kan skapa Box-objekt Vi skickar bara dimensionerna en gång, när vi skapar objektet För detta måste vi: Skapa instansvariabler för längd, bredd, höjd Skapa en konstruktor för ett Box-objekt Skapa en instansmetod för att beräkna volymen Skapa sk. ’getters’ för instansvariablerna Alice in Action with Java

7 Alice in Action with Java
Box-klassen (forts) Egenskaper hos en instansvariabel: Definieras inom en klass, men utanför en metod Innehåller inte nyckelordet static Varje objekt har sin egen kopia av instansvariablerna Egenskaper hos en klassvariabel: Innehåller nyckelordet static Det finns bara en kopia av klassvariablerna som alla objekt delar Åtkomstspecificering: private, protected, public Tumregel: använd private för instansvariabler Alice in Action with Java

8 Konstruktorer (constructors)
Skapar objektet, initierar instansvariabler med de värden anroparen anger, skickar tillbaka en referens till objektet Ex: Box box1 = new Box(3, 4, 2.5); Namnet på en konstruktor är alltid samma som namnet på klassen En konstruktor har ingen returtyp (inte ens void) Alice in Action with Java

9 Alice in Action with Java
Box-metoder Instansmetod Ett meddelande som sänds till en instans av en klass Innehåller inte nyckelordet static Ex anrop: double box1Vol = box1.volume() Accessor method (getter) Instansmetod som returnerar värdet av en instansvariabel Alice in Action with Java

10 Jämförelse mellan ballongprogrammen
Programmen producerar samma resultat I det nya programmet: Sphere- och Box-objekt modellerar ballonger och rum Sphere- och Box-klasserna kan användas i andra sammanhang Alice in Action with Java


Ladda ner ppt "Alice in Action with Java"

Liknande presentationer


Google-annonser