Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.

Lignende præsentationer


Præsentationer af emnet: "Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros."— Præsentationens transcript:

1 Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros

2 Plan for i dag Assignment operatorer Betingelser/selektioner (if og switch) Lokale variable Strengbehandling Interaktion mellem objekter –Abstraktion og moduler –Klassediagram og objektdiagram –Simple datatyper og objekt datatyper –Logiske operatorer og modulus operator –Overload og metodekald Debugging

3 Assignment operatorer int antal = 10; antal = antal + 1; int samletPris; samletPris = antal * billetPris; int antal = 10; antal += 1; int antal = 10; antal++;

4 Betingelser: if-sætninger Envejs valg: Tovejs valg: Valg med flere sætninger i samme gren: if (boolean expression) statement; if (boolean expression) statement; else statement; if (boolean expression) { statement1; statement2; }

5 Betingelser: switch-sætninger Flervejsvalg ud fra en enkelt værdi switch (expression) { case value: statements; break; case value: statements; break; … default: statements; break; } (Javabogen appendix C side 439-440)

6 Betingelser: switch-sætninger Flervejsvalg ud fra en enkelt værdi switch (month) { case 1: case 3: … case 12: numberOfDays = 31; break; case 4: case 6: … case 11: numberOfDays = 30; }

7 Lokale variable Erklæres i metodens krop Virkefelt (scope): metodens krop Levetid (lifetime): indtil metoden returnerer public int refundBalance() { int amountToRefund; amountToRefund = balance; balance = 0; return amountToRefund; } Anvend altid lokale variable til værdier der kun anvendes lokalt i en metode

8 Felter, parametre og lokale variable klassificer og angiv virkefelt og levetid: –amount, balance og newBalance public void insertMoney(int amount) { int newBalance = balance + amount; if (amount > 0) balance = newBalance; else System.out.println(”Use a positive amount ” + amount); }

9 Strengbehandling i Java public class Student { private String name; private String id; public void print() { System.out.println(name + " (" + id + ")"); } public String getLoginName() { return name.substring(0,4) + id.substring(0,3); } Fra index (incl.) Fra index (excl.) konkatenering af strenge ”3” + 4 giver ”34” 3 + 4 giver 7

10 Interaktion mellem objekter Gennemgående eksempel: Et digitalt ur

11 Abstraktion og modulopdeling Abstraktion –evnen til at at fokusere på det store billede/helhedsindtrykket I stedet for at fortabe sig I detaljer Modulopdeling –at opdele komplekse problemer i mindre enheder der er mere overskuelige (del-og-hersk strategien) Modul –En veldefineret enhed som kan konstrueres separat men som bruges I samspil med andre moduler til at opbygge en større helhed

12 Modulopdeling i praksis Eksempel – at designe en bil –Opdel bilen I komponenter: hjul, motor, sæder osv. –Design de enkelte komponenter –Design bilen ved at sætte komponenterne sammen og få dem til at interagere

13 Moduler i Java I Java udgøres modulerne af objekter (grupperet eller hver for sig) Interaktionen mellem modulerne / objekterne er det der binder programmet sammen Objekterne interagerer ved at oprette referencer til hinanden og kalde hinandens metoder

14 Det digitale ur Et display med 4 cifre? Eller 2 displays med hver 2 cifre? Lighed mellem funktionaliteten i de to displays?

15 Klasse diagram Klassediagrammet er skrevet i UML notation UML = Unified Modeling Language Klassediagrammet giver et statisk billede af relationerne mellem klasserne

16 Objekt diagram Objekt diagrammet er skrevet i UML notation Objekt diagrammet viser et dynamisk billede af relationerne mellem objekterne på kørselstidspunktet

17 Implementation - NumberDisplay public class NumberDisplay { private int limit; private int value; Constructor and methods omitted. }

18 Implementation - ClockDisplay public class ClockDisplay { private NumberDisplay hours; private NumberDisplay minutes; Constructor and methods omitted. }

19 Simple typer vs. objekt typer 32 objekt type: defineres af en klasse værdi gemmes i objekt simpel type: er indbygget i sproget værdi gemmes direkte i variabel NumberDisplay hours; int value;

20 Simple typer vs. objekt typer 32 ObjektType a; int a; ObjektType b; 32 int b; b = a;

21 Objekter der opretter objekter public class ClockDisplay { private NumberDisplay hours; private NumberDisplay minutes; private String displayString; public ClockDisplay() { hours = new NumberDisplay(24); minutes = new NumberDisplay(60); updateDisplay(); } Konstruktor i NumberDisplay: public NumberDisplay(int rollOverLimit) { limit = rollOverLimit; value = 0; } Aktuel parameter Formel parameter

22 Hvad skal uret kunne Startes kl. 0:0 eller på bestemt klokkeslæt Stilles til bestemt klokkeslæt Gå et minut ad gangen Vise hvad klokken er Heraf udledes krav til felter og metoder i klasserne ClockDisplay og NumberDisplay

23 Logiske operatorer && (and – en logisk konjunktion) || (or – en logisk disjunktion) ! (not – en negation) læs mere i app. D.2 public void setValue(int replacementValue) { if((replacementValue >= 0) && (replacementValue < limit)) { value = replacementValue; }

24 Modulus operatoren % 27 divideret med 4 er lig med 6 rest 3 I Java: –27 / 4 = 6 (med to heltalsoperander) –27 % 4 = 3 (kun med heltalsoperander) –27 / 4.0 = 6.75 (med 1 eller 2 floating point operander) public void increment() { value = (value + 1) % limit; }

25 Klasser med flere konstruktører public ClockDisplay() { hours = new NumberDisplay(24); minutes = new NumberDisplay(60); updateDisplay(); } public ClockDisplay(int hour, int minute) { hours = new NumberDisplay(24); minutes = new NumberDisplay(60); setTime(hour, minute); } Klassens konstruktor er overloaded, dvs. der er flere udgaver af samme metode med forskellige parameterlister

26 Interne og eksterne metodekald Internt metodekald (metode i samme objekt): Syntax: metodekald(parameterliste) Eksempel: setTime(12,5); alternativt: this.setTime(12,5); Eksternt metodekald (metode i andet objekt) Benytter ”dot” notation Syntax: object.metodekald(parameterliste) Eksempel: clock.setTime(12,5);

27 Debugging Bruges til at finde fejl i programmet Breakpoint markerer hvor koden skal stoppe eksekveringen ”Step” eksekverer en linie kode og går så videre til næste kodelinie – abstraktion fra detaljer ”Step into” går i detaljer og går ind i de enkelte metodekald


Download ppt "Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros."

Lignende præsentationer


Annoncer fra Google