KONCEPT Klasser og objekter En klasse beskriver et World ArrayList

Slides:



Advertisements
Lignende præsentationer
Velkommen til Softwarekonstruktion
Advertisements

07 – Kort om OO Introduktion.
Collectionklasser Klassifikation og anvendelse. Collections Motivation –hvorfor bruge collections? Realisering af en-til-mange relationer –Importer, erklær,
Selve objektet versus referencen til objektet Nedarvning
Hvordan man skriver koden.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Delphi og C++ Builder C++ Referencer og pointere.
Forelæsning 3.1 Collections Javas for-each løkke
GP6, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 6 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
Fundamentale datastrukturer
Mønstre En lille introduktion. Singleton Tilgå et objekt igennem klassereference i stedet for objektreference.  Overflødiggør referencer til objektet.
Eksempel på realisering af domænemodel
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
Objekter og klasser Rasmus D. Lehrmann DM
Bouncing Balls Brug af vektorer til modellering af hastighed og retning.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Repetition: Introduktion til OOP med C# og .NET
GP 3, 12/ Grundlæggende programmering Efterår 2001 Forelæsning 3 onsdag 12/ kl. 9:15 – 12:00.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
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.
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
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.
GP3, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 3 Vi begynder Slides ligger på hjemmesiden. Du er velkommen til.
Forelæsning 7.1 – repetition
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
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.
Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn)
Variabler, klassevariabler, identitet og lighed, collections
Introduktion til programmering Repetition - ArrayList.
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 programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Polymorfi Abstrakte klasser, substitutionsprincippet, statisk og dynamisk type.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
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.
 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.
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 3 – Mandag Niveauer af programbeskrivelser – Statiske / dynamiske beskrivelser ArrayList –Collection med variabelt antal elementer –Der.
Forelæsning Uge 5 – Mandag
Forelæsning Uge 2 – Torsdag
Forelæsning Uge 4 – Mandag
Forelæsning Uge 5 – Mandag
Forelæsning Uge 3 – Mandag
Forelæsning Uge 2 – Mandag
Forelæsning Uge 2 – Mandag
Forelæsning Uge 3 – Mandag
Klasser og objekter (Afsnit i manualen).
Forelæsning Uge 2 – Mandag
Forelæsning Uge 3 – Mandag
Forelæsning Uge 2 – Torsdag
Forelæsning Uge 3 – Mandag
Forelæsning Uge 2 – Mandag
Forelæsning Uge 2 – Mandag
Forelæsning Uge 4 – Torsdag
Quiz – Uge 9 – mandag – første time
Præsentationens transcript:

KONCEPT Klasser og objekter En klasse beskriver et World ArrayList KONKRETE En klasse beskriver et KONCEPT FYSISKE KONCEPTER World ArrayList DieCup MATEMATISKE KONCEPTER SkilledTurtle Vector Circle MÆNGDER Wombat Crab String Actor ABSTRAKTE

KONCEPT INSTANS Klasser og objekter DieCup c1; DieCup c1 En klasse beskriver et Et objekt er en c1 KONCEPT INSTANS af en klasse NAVN ERKLÆRING INITIALISERING DieCup c1; DieCup c1 = new DieCup();

KONCEPT INSTANS Klasser og objekter Vector vel = new Vector(2, 3); En klasse beskriver et Et objekt er en vel KONCEPT INSTANS af en klasse NAVN ERKLÆRING INITIALISERING Vector vel = new Vector(2, 3);

12 QUIZ Angiv klassenavne på følgende koncepter Beskriv følgende koncepter ud fra deres klassenavne

QUIZ Die d1; String course; d1 = new Die(); Vector vel; Hvilke af disse er erklæringer? Og hvilke er initialiseringer? Die d1; String course; d1 = new Die(); Vector vel; course = "dIntProg” int n = 5; 1 2 3 4 5 6

NAVN PLADSHOLDER Variabler Variablen kaldes også en objektreference En variabel er et NAVN PLADSHOLDER og en på et objekt for netop dét objekt Klassen udgør variablens type c1 vel

FELTVARIABLER Variabler private Vector vel; KLASSE: Ball FELTVARIABLER private Vector vel; udgør et objekts tilstand Kan tilgås overalt i klassen vel = new Vector(xVel, yVel); d1 Vector-instansen tilhører kun én Ball-instans dice d2 wormCount vel sun eyes

LOKALE VARIABLER PARAMETRE Variabler DieCup c1; int i; sum Kan kun tilgås i den pågældende metode i PARAMETRE xVel nDice yVel public Ball(int xVel, int yVel) public void kochFlake(int n, double length) length

ArrayList<Die> dice; QUIZ Hvad er typerne af følgende variabler? String name; double real; ArrayList<Die> dice; Hvad er indholdet af feltvariablen vel ved ? Og ved ? 1 2 private Vector vel = new Vector(2, 3); public void moveBy(Vector vel) { vel = new Vector(-1, 4); } 1 2

PROCEDURE Metoder public int getEyes() { return eyes; } En metode definerer en bestemt Metoder udgør et objekts opførsel PROCEDURE i et objekt KLASSE: Die public int getEyes() { return eyes; } METODESIGNATUR METODEKROP

PROCEDURE Metoder private void kochFlake(int n, double length) En metode definerer en bestemt Metoder udgør et objekts opførsel PROCEDURE i et objekt ACCESS MODIFIER NAVN private void kochFlake(int n, double length) public void kochFlake(int n, double length) RETURTYPE PARAMETRE

ACCESSOR Metoder public int getEyes() { return eyes; } Returnerer information om objektets tilstand KLASSE: Die public int getEyes() { return eyes; }

ACCESSOR Metoder public boolean hitTopWall() { … return true; } Returnerer information om objektets tilstand KLASSE: Ball public boolean hitTopWall() { … return true; }

MUTATOR Metoder public void roll() { eyes = …; } Ændrer objektets tilstand KLASSE: Die public void roll() { eyes = …; }

MUTATOR Metoder public void move() { … … setLocation(newX, newY) Ændrer objektets tilstand KLASSE: Ball public void move() { … setLocation(newX, newY) } SUPERKLASSE: Actor … x = newX; y = newY;

KONSTRUKTØR Metoder public DieCup(int nDice) { … } Opretter en ny instans af en klasse KLASSE: DieCup public DieCup(int nDice) { … } KLASSE: TestDriver DieCup c1 = new DieCup(2);

METODEKALD Metoder d1.roll(); sum = d1.getEyes() + d2.getEyes(); this. Afvikler indholdet af en metode i et bestemt objekt HUSK PARENTESER! d1.roll(); sum = d1.getEyes() + d2.getEyes(); ARGUMENT VARIABELNAVN PÅ OBJEKTET METODENAVN this. setLocation(200, 200); ARGUMENT QUIZ Hvad er objektet her?

vel.horizontalFlip(); d6.getEyes(); QUIZ Hvilket metodekald er korrekt? d1.roll; kochFlake(3, 150); roll(this); verticalFlip(vel); new this.Die(); Hvilket af disse er ikke et metodekald? super(600, 400, 1); move(); this.move(); vel.horizontalFlip(); d6.getEyes();

CamelCase dromedaryCase Navngivning KLASSER VARIABLER METODER DieCup KLASSER SkilledTurtle act() dromedaryCase c1 eyes roll() VARIABLER METODER undtagen konstruktører Die() Ball()

OVERSIGT UML-diagrammer Et UML-klassediagram er en KLASSE liste af FELTVARIABLER over feltvariabler og metoder i en klasse liste af METODER Ball Vector vel Ball(int xVel, int yVel) void move() boolean hitTopWall() … DieCup ArrayList<Die> dice DieCup(int nDice) void roll() int getEyes()

OVERSIGT UML-diagrammer Opbevar Die-objekterne i en feltvariabel af typen ArrayList<Die> Et UML-klassediagram er en OVERSIGT over feltvariabler og metoder i en klasse EN-TIL-MANGE-RELATION * Die int eyes void roll() int getEyes() DieCup DieCup(int nDice) void roll() int getEyes()

QUIZ Implementer følgende UML-diagram (lav metoder og feltvariabler) Brewery String name ArrayList<Beer> beers Brewery(String n) void add(Beer b) Beer biggestBeer()

4 2 int VÆRDI INSTANS Tildeling c1 = new DieCup(2); En tildeling overfører en int (et objekt) VÆRDI INSTANS eller en eyes 4 2 til en variabel c1 = new DieCup(2); c1 c1 = new DieCup(3); eyes = r.nextInt(6) + 1; i++;

int eyes = r.nextInt(6) + 1; String eyesOfDie = "" + d1.getEyes(); QUIZ Hvilke af følgende tildelinger er ikke lovlige? int eyes = r.nextInt(6) + 1; String eyesOfDie = "" + d1.getEyes(); diagonal = (int) (50.0 * Math.sqrt(2)); String sum = (d1.getEyes() + d2.getEyes()); int x = -(26); x = x + 1; int eyes = r.nextInt(6)++; 1 2 3 4 5 6 7

BESLUTNING if-sætninger if (hitTopWall()) { … } else En if-sætning træffer en if (hitTopWall()) { … } else BESLUTNING hitTopWall() er true på baggrund af en betingelse (boolean) STØRRE END ELLER LIG MED if (eyes >= 3) … if (length == 200) … if (sum < n) … if (hitLeftWall() || hitRightWall()) hitTopWall() er false LIG MED MINDRE END DEN ENE ELLER BEGGE ER OPFYLDT

GENTAGER Løkker for (int i = 0; i < 5; i++) { … } En løkke STOPBETINGELSE en række instruktioner while (!hitTopWall()) { … } int i = 0; while (i < 5) { … i++; } STOPBETINGELSE Hver gentagelse kaldes en iteration

Collections SAMLING En collection er en dice af et vilkårligt antal elementer af samme type ERKLÆRING INITIALISERING ArrayList<Die> dice = new ArrayList<Die>(); ELEMENTTYPE HUSK PARENTESER! ! HUSK AT IMPORTERE BIBLIOTEKET java.util.ArrayList

Collections SAMLING En collection er en af et vilkårligt antal elementer af samme type PAS PÅ! Typer som int, double og boolean angives ved henholdsvis Integer, Double og Boolean ArrayList<Integer> numbers = new ArrayList<Integer>(); ! HUSK AT IMPORTERE BIBLIOTEKET java.util.ArrayList

QUIZ Erklær og initialiser ArrayList-objekter med følgende typer elementer Vector int String ArrayList<Die>

INDIVIDUELLE ELEMENTER Udvidet for-løkke En udvidet for-løkke gentager en række instruktioner FOR HVERT ELEMENT i en Collection ERKLÆRING AF INDIVIDUELLE ELEMENTER for (Die d : dice) { … } COLLECTION-OBJEKT