Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel.

Lignende præsentationer


Præsentationer af emnet: "DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel."— Præsentationens transcript:

1 DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel

2 DAIMIIntroducerende objektorienteret programmering1B.2 Model  Modeller bruges i utallige sammenhænge: Flyskrog i vindtunneller viser turbolens etc. Modeljernbaner afprøver linjeføring af tog Atommodellen visualiserer det usynlige Arkitektens papmodel giver indtryk af en bygning  En model indfanger essentielle aspekter af et område, og udelader andre.  Et program kan forstås som en model.

3 DAIMIIntroducerende objektorienteret programmering1B.3 En skildpaddemodel  Vi vil lave nogle tegninger, og til det formål har vi indkøbt en dresseret skildpadde.  Skildpadden går rundt i en sandkasse.  Når skildpadden bevæger sig rundt i sandkassen, trækker den et spor, og efterlader derved en ‘tegning’ i sandet.

4 DAIMIIntroducerende objektorienteret programmering1B.4 Model (0,0) Sandkasse Skildpaddens tilstand: (position, vinkel, farve, status) - starttilstand: ((0,0), 0, Color.black, down) 0 (360) 90 180 270  Position: (x,y)  Vinkel: v  Farve: color  Status: up/down...

5 DAIMIIntroducerende objektorienteret programmering1B.5 Realisation  Vores lille skildpaddemodel kan vi realiserer ved hjælp af f.eks: Et stort stykke kvadreret papir (repræsenterer sandkassen) En “dims” som kan holde en pen og som vi kan bevæge rundt på papiret (skildpadden)  Skildpaddens tilstand er repræsenteret ved, hvor den er på papiret.

6 DAIMIIntroducerende objektorienteret programmering1B.6 Skildpaddeopførsel  Nu leger vi, at “dimsen” faktisk kan forstå enkle beskeder: Flyt dig x antal skridt Drej dig y antal grader  Hvordan ville du tegne en firkant med sidelængde 50 skridt?  Har rækkefølgen af beskederne betydning?

7 DAIMIIntroducerende objektorienteret programmering1B.7 Flere skildpadder  Antag at vores sandkasse får besøg af et par nye skildpadder…  Vi bliver nødt til at kalde vores skildpadde noget, ellers ved den enkelte ikke om det er den eller naboen som beskeden er til?  “Birger, flyt dig 50 skridt, og drej 90 grader”.

8 DAIMIIntroducerende objektorienteret programmering1B.8 Et OO-program  I Java repræsenteres elementer i en model ved  objekter  Objekter udviser en bestemt  opførsel eller handling  Objekter med ens opførsel gruppers i kategorier som kaldes  klasser

9 DAIMIIntroducerende objektorienteret programmering1B.9 Skildpaddeprogram  Hvilke objekter/modelelementer har vi? Skildpadde Sandkasse  Hvilke handlinger har Skildpadden? Sandkassen?  Flere skildpadder som tegner samtidigt? Skildpadde som begreb (klasse) og de konkrete dyr der tegner i vores sandkasse (objekter)

10 DAIMIIntroducerende objektorienteret programmering1B.10 Klassen Turtle  I vores Java-program er der en klasse “Turtle” som definerer, hvilken opførsel klassen af Java- skildpadder kan have: move(x) Flyt dig x skridt turn(x) Drej dig x grader  I de første mange programmer vil vores skildpadde lyde det lidt kedelig navn: “t”.  Sætningen: “t, flyt dig 50 skridt, og drej 90 grader” lyder på Java’sk:  t.move(50); t.turn(90);

11 DAIMIIntroducerende objektorienteret programmering1B.11 Skildpadden på tur Turtle t = new Turtle(); t.turn(45); t.move(100); t.turn(-45); t.move(20); t.turn(90); t.move(40);....................

12 DAIMIIntroducerende objektorienteret programmering1B.12 Sporløs skildpadde Turtle t = new Turtle(); t.turn(45); t.move(100); t.turn(-45); t.move(20); t.turn(90); t.move(40); t.turn(-90); t.penUp(); t.move(50); t.penDown(); t.move(50);

13 DAIMIIntroducerende objektorienteret programmering1B.13 Kulørt spor Turtle t = new Turtle(); t.turn(45); t.move(100); t.turn(-45); t.setColor(Color.blue); t.move(20); t.turn(90); t.setColor(Color.red); t.move(40); t.turn(-90); t.penUp(); t.move(50); t.penDown(); t.setColor(Color.green); t.move(50);

14 DAIMIIntroducerende objektorienteret programmering1B.14 Java sætning  t.move(50);  t Reference til modtagerobjektet  move Opførsel  (50) Detaljer (parametre)  move(50) Besked . Reference og besked adskillelse  ; Afslutning på java sætningen

15 DAIMIIntroducerende objektorienteret programmering1B.15 Turtleprogrammer import ioop.turtle.* class Drawing { public static void main(String[] args) { Turtle t = new Turtle(); t.turn(45); t.move(100); t.turn(-45); }  Drawing.java:

16 DAIMIIntroducerende objektorienteret programmering1B.16 Javas elementer  Et Java program er tekst opbygget efter et præcist formuleret sprog. Sprogets elementer er: Nøgleord (keywords):class, import, public,… Navne (identifiers):Turtle, t, move, … Konstanter (literals):12, “Hej”, 12.34, … Mellemrum (white space) Kommentarer (comments)/* … */ eller // …  Vi skriver teksten (programmet) i en editor, dvs en slags tekstbehandling, som er velegnet til at skrive Java programmer med.

17 DAIMIIntroducerende objektorienteret programmering1B.17 Mekanik  En computer forstår imidlertid ikke Java. For at kunne udføre et Javaprogram, skal det først bringes i en form, så computeren forstår det.  Java benytter en to-trinsmodel: Java program Bytekode Maskinen Java Bytekode Fortolker oversætter (compiler) Fortolkning (interpreter)

18 DAIMIIntroducerende objektorienteret programmering1B.18  Kawa Browser Projekt Editor Oversætter (Compile) –oversætterfejl (compile-fejl) Afvikling (Run) –køretidsfejl (runtime-fejl) Help  Turtleprogrammering med Kawa Eksempler Demonstration af Kawa

19 DAIMIIntroducerende objektorienteret programmering1B.19  Hvordan tegner man en ligesidet trekant med turtlemaskinen? Øvelser  Hvordan tegner man en cirkel?  Hvordan får man en figur (for eksempel en streg) til at “bevæge” sig frem og tilbage over skærmen?


Download ppt "DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel."

Lignende præsentationer


Annoncer fra Google