Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afBjarne Damgaard Redigeret for ca. et år siden
1
Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn)
2
dIntProg, F08Klasser og objekter.2 Oversigt Sætninger –simple sætninger (assignment, metodekald) –sammensatte sætninger (selektion, iteration, blok) Udtryk –operatorer –præcedens og paranteser Niveauer af programbeskrivelse –statisk syn versus dynamisk syn –klassediagram, JavaDoc, Java-kode –objektdiagram, sekvensdiagram
3
dIntProg, F08Klasser og objekter.3 Simple sætninger Assignment –udregn værdien af udtrykket på højresiden og tildel denne værdi til variablen på venstresiden Metodekald –interne metodekald –eksterne metodel v= exp; x= x + 1; a= b; x= 3 * b.noOfTricks(); object-reference.method(...); a.clap(3); c.moveto(200, 300);
4
dIntProg, F08Klasser og objekter.4 Interne metodekald public class Skuespiller { private void clapOnce() {...; number= number + 1; } public void clap(int n) { for (int i= 0; i<n; i++) { clapOnce(); } s: Skuespiller clap(2) clapOnce()
5
dIntProg, F08Klasser og objekter.5 Interne metodekald (this) public class Skuespiller { private void clapOnce() {...; number= number + 1; } public void clap(int n) { for (int i= 0; i<n; i++) { this.clapOnce(); } s: Skuespiller clap(2) clapOnce()
6
dIntProg, F08Klasser og objekter.6 Eksterne metodekald public class Drawer { Crayon c;... public void box(int length) { for (int i= 0; i < 4; i++) { c.move(length); c.turn(90); } public void spirille(int length){ for (int i= 0; i < 36; i++) { box(length); c.turn(10); } spirille(100) d: Drawerc: Crayon box(100) turn(10) move(100) turn(90) 4 36
7
dIntProg, F08Klasser og objekter.7 Sammensatte sætninger Sekvens –efterstilling af sætninger, først A, så B Selektion –betinget udførelse af sætning Iteration –repetition af sætning A B if ( B ) S1 if ( B ) S1 else S2 for ( exp1; exp2; exp3) S while ( B ) S Flere sætninger kan samles til én ved at danne en blok: {... }
8
dIntProg, F08Klasser og objekter.8 Eksempler, sekvens public void setTime(int hour, int minute) { hours.setValue(hour); minutes.setValue(minute); updateDisplay(); } public ClockDisplay(int hour, int minute) { hours= new NumberDisplay(24); minutes= new NumberDisplay(60); setTime(hour, minute); }
9
dIntProg, F08Klasser og objekter.9 Sammensatte sætninger Sekvens –efterstilling af sætninger, først A, så B Selektion –betinget udførelse af sætning Iteration –repetition af sætning A B if ( B ) S1 if ( B ) S1 else S2 for ( exp1; exp2; exp3) S while ( B ) S Flere sætninger kan samles til én ved at danne en blok: {... }
10
dIntProg, F08Klasser og objekter.10 Eksempler, selektion (1) public void timeTick() { minutes.increment(); if ( minutes.getValue() == 0 ) { // it just rolled over! hours.increment(); } updateDisplay(); }
11
dIntProg, F08Klasser og objekter.11 Eksempler, selektion (2) public String getDisplayValue() { if ( value < 10 ) { return "0" + value; } else { return "" + value; }
12
dIntProg, F08Klasser og objekter.12 Sammensatte sætninger Sekvens –efterstilling af sætninger, først A, så B Selektion –betinget udførelse af sætning Iteration –repetition af sætning A B if ( B ) S1 if ( B ) S1 else S2 for ( exp1; exp2; exp3) S while ( B ) S Flere sætninger kan samles til én ved at danne en blok: {... }
13
dIntProg, F08Klasser og objekter.13 Eksempler, iteration (1) int i= 0; while ( i<4 ) { c.move(length); c.turn(90); i++; } for ( int i= 0; i<4; i++ ) { c.move(length); c.turn(90); }
14
dIntProg, F08Klasser og objekter.14 Eksempler, iteration (2) int i= 0; while ( i<60 ) { c.timeTick(); i++; } for ( int i= 0; i<60; i++ ) { c.timeTick(); }
15
dIntProg, F08Klasser og objekter.15 Udtryk Højresiden af assignment –skal have sammenlignelig type med variablen på venstresiden Argumenter til metodekald –skal have sammenlignelig type med parametrene Betingelser i selektions- og iterationssætninger –boolesk udtryk (sandhedsværdi) –initialiserings- og optællingsudtryk i for-sætning
16
dIntProg, F08Klasser og objekter.16 Udvalgte operatorer Aritmetiske operatorer Logiske operatorer Relationelle operatorer Objektkonstruktionsudtryk + - * / %... && || !... new Class type (parameters) == != = Operatorpræcedens og paranteser...
17
dIntProg, F08Klasser og objekter.17 clock-display-mec
18
dIntProg, F08Klasser og objekter.18 Statisk versus dynamisk syn Klassediagram (specifikation) –hvad JavaDoc (specifikation) –hvad Java-kode (implementation) –hvordan Objektdiagram –objektrelationer (referencer) Sekvensdiagram –objektinteraktion Statisk struktur rum for hvad der generelt kan ske Dynamik scenarie for hvad der vil ske i en konkret situation
19
dIntProg, F08Klasser og objekter.19 Klassediagram (BlueJ vs. UML) ClockDisplay NumberDisplay int getValue() String getDisplayValue() void setValue(int val) void increment() timeTick() setTime(int h, int m) getTime() - updateDisplay() 2 TestDriver run() 1
20
dIntProg, F08Klasser og objekter.20 JavaDOC
21
dIntProg, F08Klasser og objekter.21 Java-kode
22
dIntProg, F08Klasser og objekter.22 :ClockDisplay hours minutes displayString Objektdiagram 24 :NumberDisplay 0 limit value 60 :NumberDisplay 0 limit value public ClockDisplay() { hours= new NumberDisplay(24); minutes= new NumberDisplay(60); updateDisplay(); } “00:00” public NumberDisplay(int rollOverLimit) { limit= rollOverLimit; value= 0; }
23
dIntProg, F08Klasser og objekter.23 Sekvensdiagram, timeTick :ClockDisplay minutes :NumberDisplay hours :NumberDisplay timeTick() increment() getValue() increment() updateDisplay() getDisplayValue() public void timeTick() { minutes.increment(); if(minutes.getValue() == 0) { hours.increment(); } updateDisplay(); } 22:59
24
dIntProg, F08Klasser og objekter.24 Oversigt Sætninger –simple sætninger (assignment, metodekald) –sammensatte sætninger (selektion, iteration, blok) Udtryk –operatorer –præcedens og paranteser Niveauer af programbeskrivelse –statisk syn versus dynamisk syn –klassediagram, JavaDoc, Java-kode –objektdiagram, sekvensdiagram
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.