Fundamentale sprogbegreber

Slides:



Advertisements
Lignende præsentationer
Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.
Advertisements

KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Programmering af dynamiske websider pages/tutorials/introducing-aspnet- web-pages-2/intro-to-web-pages- programming.
FEN NOEA/IT Programmeringsteknologi 1 Arv og polymorfi Substitutionsprincippet Abstrakte klasser Design Patterns (Composite)
Iteration og parametrisering
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.
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
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)
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.
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
Forelæsning 7.1 – repetition
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.
Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn)
Introduktion til programmering Repetition - ArrayList.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
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)
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Collectionklasser Klassifikation og anvendelse. dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt.
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.
DAIMIIntroducerende objektorienteret programmering4D.1 Betingelsessætninger if.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
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.
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 5 – Mandag
Forelæsning Uge 6 – torsdag – repetition
Quiz – Uge 2 – torsdag – første time
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
Forelæsning Uge 2 – Mandag
Parametrisering En kort introduktion.
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)

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

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

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

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

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

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

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

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

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

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

Eksempler, selektion (3) public void act() { if( foundLeaf() ) { eatLeaf(); } else if( canMove() ) { move(); else { turnLeft(); dIntProg, E12 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 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

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

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

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

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

clock-display-mec dIntProg, E12

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

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

JavaDOC dIntProg, E12

Java-kode dIntProg, E12

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

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

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