Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Fundamentale sprogbegreber

Lignende præsentationer


Præsentationer af emnet: "Fundamentale sprogbegreber"— Præsentationens transcript:

1 Fundamentale sprogbegreber
Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn)

2 Oversigt Sætninger Udtryk Niveauer af programbeskrivelse
simple sætninger (assignment, metodekald) sammensatte sætninger (selektion, iteration, blok) (afsnit 6 i manualen) Udtryk operatorer præcedens og parenteser Niveauer af programbeskrivelse statisk syn versus dynamisk syn klassediagram, JavaDoc, Java-kode objektdiagram, sekvensdiagram dIntProg, E12

3 Simple sætninger Assignment Metodekald v= exp; x= x + 1; a= b;
udregn værdien af udtrykket på højresiden og tildel denne værdi til variablen på venstresiden Metodekald interne metodekald eksterne metodekald v= exp; x= x + 1; a= b; x= 3 * w.getLeavesEaten(); object-reference.method(...); w.eatLeaf(); c.moveto(200, 300); dIntProg, E12

4 Interne metodekald w: Wombat public class Wombat extends Actor {
private boolean foundLeaf() { ... } private void eatLeaf() { ...; leavesEaten= leavesEaten + 1; public void act() { if ( foundLeaf() ) { eatLeaf(); w: Wombat act() foundLeaf() eatLeaf() dIntProg, E12

5 Interne metodekald (this)
public class Wombat extends Actor { private boolean foundLeaf() { ... } private void eatLeaf() { ...; leavesEaten= leavesEaten + 1; public void act() { if (this.foundLeaf() ) { this.eatLeaf(); w: Wombat act() foundLeaf() eatLeaf() dIntProg, E12 5

6 Eksterne metodekald public class AnimalTrainer{ Turtle t; ...
a: AnimalTrainer t: SkilledTurtle public class AnimalTrainer{ Turtle t; ... public void doShow() { t.square(50); t.square(200); t.boxes(20); } doShow() square(50) move(200) boxes(20) Tegn sekvensdiagram på tavlen dIntProg, E12

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 Flere sætninger kan samles til én ved at danne en blok: { ... } A B if ( B ) S1 if ( B ) S1 else S2 for ( exp1; exp2; exp3) S while ( B ) S dIntProg, E12

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); } dIntProg, E12

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 Flere sætninger kan samles til én ved at danne en blok: { ... } A B if ( B ) S1 if ( B ) S1 else S2 for ( exp1; exp2; exp3) S while ( B ) S dIntProg, E12

10 Eksempler, selektion (1)
public void timeTick() { minutes.increment(); if ( minutes.getValue() == 0 ) { // it just rolled over! hours.increment(); } updateDisplay(); dIntProg, E12

11 Eksempler, selektion (2)
public String getDisplayValue() { if ( value < 10 ) { return "0" + value; } else { return "" + value; dIntProg, E12

12 Eksempler, selektion (3)
public void act() { if( foundLeaf() ) { eatLeaf(); } else if( canMove() ) { move(); else { turnLeft(); dIntProg, E12 12

13 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 Flere sætninger kan samles til én ved at danne en blok: { ... } A B if ( B ) S1 if ( B ) S1 else S2 for ( exp1; exp2; exp3) S while ( B ) S dIntProg, E12

14 Eksempler, iteration (1)
for ( int i= 0; i<4; i++ ) { c.move(length); c.turn(90); } int i= 0; while ( i<4 ) { c.move(length); c.turn(90); i++; } dIntProg, E12

15 Eksempler, iteration (2)
for ( int i= 0; i<60; i++ ) { c.timeTick(); } int i= 0; while ( i<60 ) { c.timeTick(); i++; } dIntProg, E12

16 Udtryk Højresiden af assignment Argumenter til metodekald
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 dIntProg, E12

17 Udvalgte operatorer Aritmetiske operatorer + - * / % ...
Logiske operatorer Relationelle operatorer Objektkonstruktionsudtryk + - * / % ... Operatorpræcedens og paranteser... && || ! ... == != < > <= >= new Class type (parameters) dIntProg, E12

18 clock-display-mec dIntProg, E12

19 Statisk versus dynamisk syn
Klassediagram (specifikation) hvad JavaDoc (specifikation) 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 dIntProg, E12

20 Klassediagram (BlueJ vs. UML)
TestDriver run() 1 ClockDisplay NumberDisplay int getValue() String getDisplayValue() void setValue(int val) void increment() timeTick() setTime(int h, int m) getTime() - updateDisplay() 2 dIntProg, E12

21 JavaDOC dIntProg, E12

22 Java-kode dIntProg, E12

23 Objektdiagram :ClockDisplay hours minutes displayString :NumberDisplay
24 :NumberDisplay limit value “00:00” 60 :NumberDisplay limit value public ClockDisplay() { hours= new NumberDisplay(24); minutes= new NumberDisplay(60); updateDisplay(); } public NumberDisplay(int rollOverLimit) { limit= rollOverLimit; value= 0; } dIntProg, E12

24 Sekvensdiagram, timeTick
minutes :NumberDisplay hours :NumberDisplay 22:59 :ClockDisplay timeTick() increment() getValue() increment() updateDisplay() getDisplayValue() getDisplayValue() public void timeTick() { minutes.increment(); if(minutes.getValue() == 0) { hours.increment(); } updateDisplay(); dIntProg, E12

25 Oversigt Sætninger Udtryk Niveauer af programbeskrivelse
simple sætninger (assignment, metodekald) sammensatte sætninger (selektion, iteration, blok) (afsnit 6 i manualen) Udtryk operatorer præcedens og parenteser Niveauer af programbeskrivelse statisk syn versus dynamisk syn klassediagram, JavaDoc, Java-kode objektdiagram, sekvensdiagram dIntProg, E12


Download ppt "Fundamentale sprogbegreber"

Lignende præsentationer


Annoncer fra Google