Presentation laddar. Vänta.

Presentation laddar. Vänta.

Alice in Action with Java 1 Modularisering I Java Skapa egna metoder i Java Definiera parametrar och skicka argument Anropa metoder och ta emot returvärden.

Liknande presentationer


En presentation över ämnet: "Alice in Action with Java 1 Modularisering I Java Skapa egna metoder i Java Definiera parametrar och skicka argument Anropa metoder och ta emot returvärden."— Presentationens avskrift:

1 Alice in Action with Java 1 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

2 Alice in Action with Java 2 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.

3 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

4 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

5 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

6 Alice in Action with Java 6 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

7 Alice in Action with Java 7 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: –Definieras inom en klass, men utanför en metod –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

8 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)

9 Alice in Action with Java 9 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

10 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


Ladda ner ppt "Alice in Action with Java 1 Modularisering I Java Skapa egna metoder i Java Definiera parametrar och skicka argument Anropa metoder och ta emot returvärden."

Liknande presentationer


Google-annonser