Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)

Lignende præsentationer


Præsentationer af emnet: "Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)"— Præsentationens transcript:

1 Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)

2  Bærbak & Caspersen, 2000 Introducerende objektorienteret programmering2A.2 Emner  Nye slags skildpadder  Nye metoder  Parametrisering  Specifikation  Hvad  Hvordan  Abstraktion

3  Bærbak & Caspersen, 2000 Introducerende 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 }

4  Bærbak & Caspersen, 2000 Introducerende 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); } } }

5  Bærbak & Caspersen, 2000 Introducerende objektorienteret programmering2A.5 Padder, og lærde padder  class Turtle {  //move, moveTo, turn,...  }  class SkilledTurtle extends Turtle {  //box(...), spirille(...)  }

6  Bærbak & Caspersen, 2000 Introducerende 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(...)  }

7  Bærbak & Caspersen, 2000 Introducerende 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(...) }

8  Bærbak & Caspersen, 2000 Introducerende 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); }

9  Bærbak & Caspersen, 2000 Introducerende 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... }

10  Bærbak & Caspersen, 2000 Introducerende 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.

11  Bærbak & Caspersen, 2000 Introducerende 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!

12  Bærbak & Caspersen, 2000 Introducerende 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).

13  Bærbak & Caspersen, 2000 Introducerende 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.


Download ppt "Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)"

Lignende præsentationer


Annoncer fra Google