 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel.

Slides:



Advertisements
Lignende præsentationer
Lidt om pladsholdere.
Advertisements

01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Mekanikeren ser spørgende på hende: „Hvad er en "710"???"
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
Iteration og parametrisering
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
FEN IntroJava AAU1 Grafik – Crayon-objekter.
Forelæsning 2.2 Tilstand og opførsel (repetition)
Længste plateau En klassisk problemstilling (Gries, 1981) - og her i Java!!! Denne opgave drejer sig om at bestemme længden af det længste plateau i en.
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;
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.
DAIMIIntroducerende objektorienteret programmering4C.1 Systemdesign Design med flere klasser, En kaffeautomat.
 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”
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 programmering12A.1 Moduler Packages i Java.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 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,
Indledende Programmering Uge 6 - Efterår 2006
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
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)
 Jens Bennedsen 2001Multimedie programmering11.1 Lingo Basis.
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.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering14.1 Lingo Inside LingoLand.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
 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.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge44 Java til Lingo Klasser, statements og lister.
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;
DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java.
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.
DAIMIIntroducerende objektorienteret programmering2A.1 Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges.
FEN IntroJava AAU1 Introduktion til programmering Et program: HelloWorld Objekter og klasser.
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 4 – Torsdag
Computerens talsystem
GeoGebra 1 Mål: Du kan tænde og slukke for algebravindue og tegneblok.
Forelæsning Uge 2 – Torsdag
Forelæsning Uge 1 – Torsdag
Quiz – Uge 3 – mandag – første time
Klasser og objekter (Afsnit i manualen).
Forelæsning Uge 2 – Torsdag
Forelæsning Uge 2 – Torsdag
Parametrisering En kort introduktion.
Forelæsning Uge 2 – Mandag
Forelæsning Uge 4 – Torsdag
DIT NAVN DIN UDDANNELSE (husk både kandidat og bachelor, hvis de er forskellige) og KONTAKTOPLYSNINGER Baggrund Kort beskrivelse af hvilket problem, specialet.
Præsentationens transcript:

 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel

 Jens Bennedsen 2001Multimedie programmering1.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.

 Jens Bennedsen 2001Multimedie programmering1.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.

 Jens Bennedsen 2001Multimedie programmering1.4 Model (0,0) Sandkasse Skildpaddens tilstand: (position, vinkel, farve, status) - starttilstand: ((0,0), 0, Color.black, down) 0 (360) Position: (x,y) Vinkel: v Farve: color Status: up/down...

 Jens Bennedsen 2001Multimedie programmering1.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.

 Jens Bennedsen 2001Multimedie programmering1.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?

 Jens Bennedsen 2001Multimedie programmering1.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”.

 Jens Bennedsen 2001Multimedie programmering1.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

 Jens Bennedsen 2001Multimedie programmering1.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)

 Jens Bennedsen 2001Multimedie programmering1.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);

 Jens Bennedsen 2001Multimedie programmering1.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);

 Jens Bennedsen 2001Multimedie programmering1.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);

 Jens Bennedsen 2001Multimedie programmering1.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);

 Jens Bennedsen 2001Multimedie programmering1.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

 Jens Bennedsen 2001Multimedie programmering1.15 Turtleprogrammer import turtle.*; class Drawing { public static void main(String[] args) { Turtle t = new Turtle(); t.turn(45); t.move(100); t.turn(-45); } Drawing.java:

 Jens Bennedsen 2001Multimedie programmering1.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.

 Jens Bennedsen 2001Multimedie programmering1.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)

 Jens Bennedsen 2001Multimedie programmering1.18 Demonstration af BlueJ BlueJ –Editor –Oversætter (Compile) oversætterfejl (compile-fejl) –Afvikling (Run) køretidsfejl (runtime-fejl) –Help Turtleprogrammering i BlueJ –Eksempler

 Jens Bennedsen 2001Multimedie programmering1.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?