Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

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

Lignende præsentationer


Præsentationer af emnet: "Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn)"— Præsentationens transcript:

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 { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.dk/15/4809666/slides/slide_4.jpg", "name": "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

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 { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.dk/15/4809666/slides/slide_5.jpg", "name": "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

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


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

Lignende præsentationer


Annoncer fra Google