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

Slides:



Advertisements
Lignende præsentationer
Velkommen til Softwarekonstruktion
Advertisements

Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
FEN NOEA/IT Programmeringsteknologi 1 Arv og polymorfi Substitutionsprincippet Abstrakte klasser Design Patterns (Composite)
Forelæsning 3.1 Collections Javas for-each løkke
Interfaces – brug. Overblik Tidligere: –Interfaces Comparable gør det muligt at bruge Collections metoderne –min, max, sort, … –Algoritmemønstre Find.
1 JavaScript Lektion 6: Repetition i JavaScript Math TIDY Litteratur: JST lektion 10.
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Primitive typer. dIntProg, F08Typer.2 Subtyperelation for primitive typer byte ≤ short ≤ int ≤ long ≤ float ≤ double char boolean double d; int i; d =
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
Forelæsning 2.2 Tilstand og opførsel (repetition)
Fundamentale sprogbegreber
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Repetition af dIntProg v/ Morten D. Bech. Tour de force Variabler Løkker Comparable ImErKo-reglen Eksamenssæt dIntProg, E13.
Forelæsning 7.1 – repetition
Identitet vs lighed. Spørgsmål Hvad udskriver run metoden? 1.”Ens!” 2.”Forskellige!” 3.Ved ikke public class Driver{ public static void run(){ String.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
Quiz 3.1. Quiz 1 – Assignment dIntProg, E14 Hvad er værdierne af x og y efter udførelse af følgende program? 1.x er 6, y er 3 2.x er 8, y er 5 3.x er.
Variabler, klassevariabler, identitet og lighed, collections
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Trinvis forfinelse Systematisk, gradvis udvikling af programmer.
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Polymorfi Abstrakte klasser, substitutionsprincippet, statisk og dynamisk type.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
 Jens Bennedsen 2001Multimedie programmering11.1 Lingo Basis.
Grafik Modeller, objekter og opførsel. dIntProg, F08Grafik.2 Nye begreber Repetition (iteration) –gentagelse af opførsel Parametrisering –generalisering.
Collectionklasser Klassifikation og anvendelse. dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
Fundamentale sprogbegreber Typer. dIntProg, F08Typer.2 Typer Primitive typer –boolean –byte, char, short, int, long, float, double Objekttyper –klassetype.
 Jens Bennedsen 2001Multimedie programmering3A.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Introduktion til programmering Repetition. dIntProg, F08Repetition.2 dIntProg Sidste forelæsning (12/10) –kort tilbagemelding på evaluering –repetition.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge44 Java til Lingo Klasser, statements og lister.
DAIMIIntroducerende objektorienteret programmering4D.1 Betingelsessætninger if.
DAIMIIntroducerende objektorienteret programmering2A.1 Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Forelæsning Uge 2 – Torsdag Java syntax og style guide Sætninger –Simple sætninger (assignment, interne og eksterne metodekald) –Sammensatte sætninger.
Algoritmeskabeloner findOne, findAll, findNoOf, findSumOf Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder.
Forelæsning Uge 3 – Mandag Niveauer af programbeskrivelser – Statiske / dynamiske beskrivelser ArrayList –Collection med variabelt antal elementer –Der.
Forelæsning Uge 5 – Mandag
Forelæsning Uge 2 – Torsdag
Forelæsning Uge 4 – Mandag
Forelæsning Uge 4 – Mandag
Forelæsning Uge 6 – torsdag – repetition
Quiz – Uge 3 – mandag – første time
Forelæsning Uge 2 – Mandag
Forelæsning Uge 2 – Mandag
Forelæsning Uge 3 – Mandag
Klasser og objekter (Afsnit i manualen).
Quiz – Uge 3 – torsdag – første time
Forelæsning Uge 2 – Mandag
Forelæsning Uge 2 – Torsdag
Studiepraktik Thomas Bøgholm Mikkel Hansen Jacob Elefsen
Forelæsning Uge 2 – Torsdag
Programmering.
Forelæsning Uge 2 – Mandag
Forelæsning Uge 2 – Mandag
Quiz – Uge 3 – torsdag – første time
Forelæsning Uge 2 – Mandag
Forelæsning Uge 4 – Torsdag
Præsentationens transcript:

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

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

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

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()

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()

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

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: {... }

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

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: {... }

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

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

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: {... }

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

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

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

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

dIntProg, F08Klasser og objekter.17 clock-display-mec

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

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

dIntProg, F08Klasser og objekter.20 JavaDOC

dIntProg, F08Klasser og objekter.21 Java-kode

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

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

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