Alice in Action with Java

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Klasser och objekt.
Programmeringsteknik
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Klassarv och inkapsling
OOP Objekt-orienterad programmering
Metoder i java Det finns två typer av metoder i java
Arv.
Inkapsling.
Metoder.
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Programkodens uppbyggnad
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Next previous Introduktion till Java Av Björn Eiderbäck Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: OOMPAE 2000.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
i olika programmeringsspråk
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Föreläsning 11 Arrayer.
Objektorienterad programmering i Java
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmering i C# 3. Klasser.
Föreläsning 2, Kapitel 2 Att förstå klassdefinitioner Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Klasser och objekt Klasser, objekt och instansvariabler
int res2=Math.max(tal1,tal2);
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
4. Arv och dynamisk bindning
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Räckvidd och synlighet. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Synlighet (meddelandesändning) Det.
Programmering i C# 5. Structer.
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
Föreläsning 8 Arv och abstrakta klasser. Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen ( extends.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Föreläsning 9 Gränssnitt. Super Super kan användas till anrop av en omdefinierad metod Super kan användas till anrop av konstruktorer i superklassen Super.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
OOP F14:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 14 Repetition Tips inför inlämningsuppgift 2.
Föreläsning 4 Klasser Och Objekt.
1. Ett problem/uppgift.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
INTRODUKTION TILL PROGRAMMERING
Föreläsning 7 Programmeringsteknik och Matlab DD1315 Kommandotolk parametrar Klass Instans Metod konstruktor.
7. Delegerare och notifierare
Föreläsning 17 Repetition. Källkodsformat Unicode används åäöμψζ tillåtna i namn på identifierare Inte alla miljöer klarar av det Källkod Bytekod Java.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
Föreläsning 5 Klasser och instanser
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
OOP - teori1 OOP del II– Föreläsning 5 vecka 6. OOP - teori2 Klasser Substantiv i singularis stavat med stor bokstav till exempel Human Dog Account Circle.
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
1 Föreläsning 6 Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
OOP&M - teori1 OOP del II– Föreläsning 2 vecka 46 Konstruktorer Instansmetoder Kapitel 14 i kursboken.
Malmö högskola Rolf Axelsson 2003/2004 DA7231, 4 poäng Referensvariabel Klass och konstruktorer Klass med set- och get-metoder Klass och fält Fler metoder.
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
Arv, abstrakta klasser och gränssnitt
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
1 Mer om metoder, variabler, klasser och objekt. Kursboken: - Kapitel 6 - Kapitel 8.
Presentationens avskrift:

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

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

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

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

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

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

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

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

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

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