MEC, DAIMIIntroJava2006 - AAU1 Crayon-objekter nu med loops og metoder.

Slides:



Advertisements
Lignende præsentationer
C# introduktion. using System; Namespace MyFirst { class eks1 { public static void Main() { Console.WriteLine("Hej!"); Console.Write("Skriv dit navn her:
Advertisements

RT Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende ”Java Optimized Processor” (JOP) Speciale – efterår.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
Effective Java items Orange gruppe Thuy, Janne, Mads T.P., Oliver og Sebastian.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Programmeringsteknologi: Lektion 1
Collectionklasser Klassifikation og anvendelse. Collections Motivation –hvorfor bruge collections? Realisering af en-til-mange relationer –Importer, erklær,
// Semaphore.java package semaphore; public class Semaphore { int resources = 1; // Constructors Semaphore() {} Semaphore(int i) { resources = i; } synchronized.
Objekter og klasser Applikationsdesign Code Namespace Value og reference typer Reference type Rasmus D. Lehrmann1.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Tietgen Skolen Syntaks: while ( betingelse for loop ) statement; Eksempel: int tal = 0; while ( tal/3 != 4 ) { System.Console.WriteLine(tal); tal = tal.
Abstrakte klasser og interfaces i Java
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
C# programmering Per P. Madsen Afd. for Proceskontrol
Begreber og Redskaber 5. Collections i Java 1.2 Framework: samling af datastrukturer og algoritmer som generelt værktøj. En ramme til at arbejde med søgning.
Begreber og Redskaber 6. Plan for idag Tabeller Udvalgssortering, køretid Lidt mere om objekter Budskab: Køretid kan være et problem og bør løses med.
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
FEN NOEA/IT Programmeringsteknologi 1 Arv og polymorfi Substitutionsprincippet Abstrakte klasser Design Patterns (Composite)
Iteration og parametrisering
18. Strategisk analyse af interne forhold
Interfaces – brug. Overblik Tidligere: –Interfaces Comparable gør det muligt at bruge Collections metoderne –min, max, sort, … –Algoritmemønstre Find.
Fundamentale datastrukturer
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
FEN IntroJava AAU1 Loops og algoritmer Sweep – for-loop Søgning – while-loop.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
FEN IntroJava AAU1 Grafik – Crayon-objekter.
Forelæsning 2.2 Tilstand og opførsel (repetition)
Fundamentale sprogbegreber
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
Per P Madsen AAU1 Del 4 : Sessions-, presentations- og applikationslaget - Applikationsprotokoller. - RPC og RMI. - Digital audio og Voice over IP. - RTP.
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;
Repetition af dIntProg v/ Morten D. Bech. Tour de force Variabler Løkker Comparable ImErKo-reglen Eksamenssæt dIntProg, E13.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn)
Variabler, klassevariabler, identitet og lighed, collections
Klassevariable- og metoder Tilstand og opførsel på klasseniveau.
 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 programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Polymorfi Abstrakte klasser, substitutionsprincippet, statisk og dynamisk type.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
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.
Collectionklasser Klassifikation og anvendelse. dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
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 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.
Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere.
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
Dog Sort Dogs For meget ansvar Låst til én måde at sortere på
Quiz – Uge 3 – mandag – første time
Præsentationens transcript:

MEC, DAIMIIntroJava AAU1 Crayon-objekter nu med loops og metoder

MEC, DAIMIIntroJava AAU2 Model Drawer Crayon move(int d) moveto(int x, int y) jump(int d) jumpto(int x, int y) turn(double a) turnto(double a) erase() box(int length) spirille(...)... 1

MEC, DAIMIIntroJava AAU3 Tegneprogram (eks. drawer) public class Drawer { private Crayon c = new Crayon(); public void square100() { c.move(100); c.turn(90); }... }

MEC, DAIMIIntroJava AAU4 Iteration //tegn en firkant t.move(100); t.turn(90); //tegn en tolvkant... (suk!) //tegn en firkant for ( int i=0; i<4; i++ ) { t.move(100); t.turn(90); } //tegn en tolvkant for ( int i=0; i<12; i++ ) { t.move(100); t.turn(30); }

MEC, DAIMIIntroJava AAU5 Tegneprogram med løkke import java.awt.*; // Hvis man vil benytte farver public class Drawer { private Crayon c = new Crayon(Color.red, 1); public void square100() { for ( int i=0; i<4; i++ ) { t.move(100); t.turn(90); }... }

MEC, DAIMIIntroJava AAU6 Parametrisering (specifikation) class Drawer { private Crayon c = new Crayon(); /** tegner et kvadrat med sidelængde length */ public void box(int length) { } Det ville være smartere at lave en metode der kan tegne kvadrater af vilkårlig størrelse. ?

MEC, DAIMIIntroJava AAU7 Parametrisering (implementation) class Drawer { private Crayon c = new Crayon(); /** tegner et kvadrat med sidelængde length */ public void box(int length) { for (int i = 0; i < 4; i++) { c.move(length); c.turn(90); } Det ville være smartere at lave en metode der kan tegne kvadrater af vilkårlig størrelse.

MEC, DAIMIIntroJava AAU8 Parametrisering (implementation) class Drawer { private Crayon c = new Crayon(); /** tegner et kvadrat med sidelængde length */ public void box(int length) { for (int i = 0; i < 4; i++) { c.move(length); c.turn(90); } Det ville være smartere at lave en metode der kan tegne kvadrater af vilkårlig størrelse. Argument (aktuel parameter) Parameter (formel parameter)

MEC, DAIMIIntroJava AAU9 Øvelser 1 Lav en metode, som tegner et ligesidet trekant med vilkårlig sidelængde Lav en metode, som tegner en ligesidet sekskant med vilkårlig sidelængde Kan disse tegne x-kant metoder generaliseres?

MEC, DAIMIIntroJava AAU10 Øvelser 2 class Drawer {... /** * tegner en d-kant med sidelængde length */ public void polygon(int d, int length) {... } Lav polygon-metoden:

MEC, DAIMIIntroJava AAU11 Øvelser 3 Lav square og triangle metoderne vha. polygon class Drawer {... public void polygon(int d, int length) {... } /** tegner et kvadrat med sidelængde length */ public void square(int length) {... } /** tegner en ligesidet trekant med * sidelængde length */ public void triangle(int length) {... }

MEC, DAIMIIntroJava AAU12 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!

MEC, DAIMIIntroJava AAU13 Pointer 2 Når man skal benytte en metode er det vigtigt med forståelse af hvad operationen gør. Når man skal programmere en metode, skal man tage stilling til hvordan denne skal realiseres (implementeres).

MEC, DAIMIIntroJava AAU14 Pointer 3 Typisk er man både anvender og implementør af en metode, men det er vigtigt at skelne skarpt mellem de to syn. –Når man anvender en metode skal man ikke tænke på hvordan denne er realiseret. –Når man implementerer en metode skal man ikke tænke på hvad denne skal bruges til. Efterlevelse af dette enkle princip er en af nøglerne til at kunne lave gode programmer.