Föreläsning 2, Kapitel 2 Att förstå klassdefinitioner Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.

Slides:



Advertisements
Liknande presentationer
Utveckla en applikation Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
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.
Föreläsning 7, Kapitel 7 Designa klasser Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Klasser och objekt.
Programmeringsteknik
Klassarv och inkapsling
OOP Objekt-orienterad programmering
Arv.
Inkapsling.
Objektorienterad tänkande
Välkommen Vahid Mosavat
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
Grundläggande programmering
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.
Alice in Action with Java
Objektorienterad programmering i Java
Föreläsning 4, Kapitel 4 Gruppera objekt Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Föreläsning 11 Arrayer.
Objektorienterad programmering i Java
Variabler: Datatyp - grundläggande : int, double, char, boolean eller
Programmering i C# 3. Klasser.
Klasser och objekt Klasser, objekt och instansvariabler
Föreläsning 6, kapitel 6 Objekt som uppför sig som de skall Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes.
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.
Föreläsning 8, kapitel 8 Förbättra strukturen med arv Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.
Metodik för problemlösning Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar.
Vektorer (klassen Vector) Sortering
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Grundläggande programmering
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
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.
Föreläsning 5, Kapitel 5 Använda Java-bibliotek för att få avancerad funktionalitet Kursbok: “Objects First with Java - A Practical Introduction using.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Introduktion till klasser, objekt och BlueJ Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
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.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Föreläsning 10, kapitel 10 Abstrahera mera! Abstrakta klasser och interface Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”,
Föreläsning 4 Klasser Och Objekt.
1. Ett problem/uppgift.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
Föreläsning 3, Kapitel 3 Objektinteraktion - Skapa objekt som samarbetar Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David.
7. Delegerare och notifierare
Välkommen till kursen objektorienterad programmering med Java Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes.
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.
Föreläsning 3 Villkorssatsen if Slingor: while och for Felsökning.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
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.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
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.
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
1 Mer om metoder, variabler, klasser och objekt. Kursboken: - Kapitel 6 - Kapitel 8.
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

Föreläsning 2, Kapitel 2 Att förstå klassdefinitioner 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 fredric.ragnar@hgo.se Telefon 0498-299948 Andreas Hedrén andreas.hedren@hgo.se

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

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?

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

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

Fält Fält lagrar värden för ett objekt public class TicketMachine { private int price; private int balance; private int total;   Konstruktor och metoder visas inte. } 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 Synlighetsmodifierare variabelnamn typ private int price;

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; }

Skicka data med parametrar

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;

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.

”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

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

”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

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

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();   // Update the total collected with the balance. total += balance; // Clear the balance. balance = 0; }

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

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

Att göra val, mer… Boolskt villkor som skall testas – ger resultatet sant eller falskt ‘if’ nyckelord Åtgärder om villkoret är sant 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 Åtgärder om villkoret är falskt ‘else’ nyckelord

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

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

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.

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;

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.

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.

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)