DAIMIIntroducerende objektorienteret programmering2A.1 Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)

Slides:



Advertisements
Lignende præsentationer
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
Advertisements

Iteration og parametrisering
MEC, DAIMIIntroJava AAU1 Crayon-objekter nu med loops og metoder.
Interfaces – brug. Overblik Tidligere: –Interfaces Comparable gør det muligt at bruge Collections metoderne –min, max, sort, … –Algoritmemønstre Find.
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
FEN IntroJava AAU1 Grafik – Crayon-objekter.
Forelæsning 2.2 Tilstand og opførsel (repetition)
Fundamentale sprogbegreber
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.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn)
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
 Bærbak & Caspersen, 2000Introducerende objektorienteret programmering1.1 Turtlemaskinen Arkitektur, instruktionssæt og eksempler.
DAIMIIntroducerende Objektorienteret Programmering1 Polymorfi og nedarvning Motivation for arv og “mange former”
 1999, Henrik B. ChristensenIntroducerende objektorienteret programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
 Jens Bennedsen 2001Multimedie programmering10A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Rekursive skildpadder Supertrekanter.....  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.2 Penta, etc.
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.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.
DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering7A.1 Rekursion.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
Kari Rye Schougaard, Ph.d.-stud. Værktøjer og Teknikker, 2006 A A R H U S U N I V E R S I T E T DATALOGISK INSTITUT Java på 20 minutter (eller lidt mere)
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation.
DAIMIIntroducerende Objektorienteret Programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Grafik Modeller, objekter og opførsel. dIntProg, F08Grafik.2 Nye begreber Repetition (iteration) –gentagelse af opførsel Parametrisering –generalisering.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Interfaces – hvorfor, hvad og hvordan?.  Michael E. Caspersen 2003IOOPInterfaces.2 Oversigt Interfaces, hvorfor –Separering af specifikation (interface)
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Klassevariable- og metoder Funktionalitet på klasseniveau.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.1 Rekursive skildpadder Supertrekanter....
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
DAIMIIntroducerende objektorienteret programmering1 Et lille banksystem Modellering beskrevet ved et UML klassediagram.
 Jens Bennedsen 2001Multimedie programmering3A.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmering4D.1 Betingelsessætninger if.
Tutankhamons Grav Et modellerings eksempel
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;
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering15A.1 Eksamen…
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Frameworks Hændelsesstyret programmering: ”Don’t call us - we call you”
Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges.
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 2 – Torsdag
Forelæsning Uge 1 – Torsdag
Quiz – Uge 3 – mandag – første time
Forelæsning Uge 2 – Mandag
Quiz – Uge 3 – mandag – første time
Parametrisering En kort introduktion.
Forelæsning Uge 2 – Mandag
Quiz – Uge 3 – mandag – første time
Præsentationens transcript:

DAIMIIntroducerende objektorienteret programmering2A.1 Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)

DAIMIIntroducerende objektorienteret programmering2A.2 Emner  Nye slags skildpadder  Nye metoder  Parametrisering  Specifikation  Hvad  Hvordan  Abstraktion

DAIMIIntroducerende objektorienteret programmering2A.3 Lærde padder En padde er ‘født’ med et meget simpelt ‘ordforråd’, men vi kan ‘lære den op’ og derefter kontrollere den ved hjælp af de nye og mere avancerede operationer: class Drawing { public static void main(String args[]) { SkilledTurtle t = new SkilledTurtle(); t.center(); t.box(); t.wait(3000); t.clear(); t.spirille(); } class SkilledTurtle extends Turtle { //box, spirille }

DAIMIIntroducerende objektorienteret programmering2A.4 Skoling af padder  En padde skoles som følger: class SkilledTurtle extends Turtle { public void box() { //tegner et kvadrat med sidelængde 100 for (int i=0; i<4; i++) { move(100); turn(90); } } public void spirille() { //tegner en spirille med sidelængde 100 for (int i=0; i<36; i++) { box(); turn(10); } } }

DAIMIIntroducerende objektorienteret programmering2A.5 Padder, og lærde padder  class Turtle {  //move, moveTo, turn,...  }  class SkilledTurtle extends Turtle {  //box(...), spirille(...)  }

DAIMIIntroducerende objektorienteret programmering2A.6 Der er mange slags lærde  class Turtle {  //move, moveTo, turn,...  }  class GeometryTurtle extends Turtle {  //box(...), spirille(...)  }  class ArchitectTurtle extends Turtle {  //house(...), church(...)  }

DAIMIIntroducerende objektorienteret programmering2A.7 Skolede padder  Det ville være smartere at lære padden at tegne firkanter (og spiriller) af vilkårlig størrelse: class Drawing { public static void main(String args[]) { SkilledTurtle t = new SkilledTurtle(); t.center(); t.box(200); t.wait(); t.clear(); t.spirille(150); } class SkilledTurtle extends Turtle { //box(...), spirille(...) }

DAIMIIntroducerende objektorienteret programmering2A.8 Parametrisering class SkilledTurtle extends Turtle { public void box(int l) { //tegner et kvadrat med sidelængde l for (int i=0; i<4; i++) { move(l); turn(90); } public void spirille(int l) { //tegner en spirille med sidelængde l for (int i=0; i<36; i++) { box(l); turn(10); }

DAIMIIntroducerende objektorienteret programmering2A.9 Øvelse 1  1. Skriv en operation der ‘lærer’ en turtle at tegne en polygon. Lad antal sider og sidelængden være parametre til operationen: class SkilledTurtle extends Turtle {... public void polygon(int d, int l) { //tegner en d-kant med sidelængde l... }

DAIMIIntroducerende objektorienteret programmering2A.10 Øvelse 2 class SkilledTurtle extends Turtle { public void polygon(int d, int l) {... } public void square(int l) { //tegner et kvadrat med sidelængde l... } public void triangle(int l) { //tegner en ligesidet trekant med sidelængde l... }  2. Benyt operationen polygon til at lære turtlen at tegne et kvadrat henholdsvis en ligesidet trekant.

DAIMIIntroducerende objektorienteret programmering2A.11 Pointer (1)  Det kan betale sig at lave gode generelle operationer som kan genbruges i mange situationer.  Parametrisering er nøglen til at lave generelle operationer.  Det er svært at ‘opfinde’ de gode generelle operationer (konkret  generelt), men opsøg dem!

DAIMIIntroducerende objektorienteret programmering2A.12 Pointer (2)  Når man skal benytte en operation er det vigtigt med forståelse af hvad operationen gør.  Når man skal programmere en operation, skal man tage stilling til hvordan operationen skal realiseres (implementeres).

DAIMIIntroducerende objektorienteret programmering2A.13 Pointer (3)  Typisk er man både anvender og implementør af en operation, men det er vigtigt at skelne skarpt mellem de to syn.  Når man anvender en operation skal man ikke tænke på hvordan operationen er realiseret, og når man implementerer en operation skal man ikke tænke på hvad operationen skal bruges til.  Efterlevelse af dette enkle princip er nøglen til at kunne lave gode programmer.