Hoofdstuk 8 Objecten en klassen.

Slides:



Advertisements
Verwante presentaties
Het type int Tekenen met Java operatoren
Advertisements

Hoofdstuk 2 Hallo, C# !.
Hoofdstuk 10 Overerving.
Array nDeclaratie nCreatie nOpvragen nWijzigen nLengte String [ ] a; a = new String[10]; ……a[5]…… a[5] = ……; …a.Length… …is eigenlijk overbodig! List a;
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Oefeningen Hoofdstuk 3.
Algoritmiek Object-georiënteerd Programmeren
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
Opgave 2a nMet een InputStream lees je bytes uit een binare file nMet een Reader lees je characters uit een tekstfile.
Hoofdstuk 9 Objecten en klassen.
Hoofdstuk 10.1 Toepassing: Bitmap-editor. nKlik punten op scherm nPlaatje verschuiven left, right, up, down nPlaatje bewerken clear, invert, bold, outline.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Hoorcollege 2 Basis gameprogrammeren. Soorten programma’s Console- applicatie.
Hoorcollege 4 Objecten en methoden. Eigen methode toevoegen class Painter : Game { public void HandleInput() { … } protected override void Update(GameTime.
Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje”
Hoofdstuk 11.3 Algoritmen: Zoeken in een netwerk.
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 14.1 Algoritmen: Zoeken in een netwerk.
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Polymorphisme en Interfaces: inleiding
Hoofdstuk 3 Methoden om te tekenen.
Opgave 1a ncompiler: vertaalt broncode naar machine-uitvoerbare code ninterpreter: voert broncode direct uit.
Hoofdstuk 3 Tekenen en rekenen.
Hoofdstuk 4 Nieuwe methoden. Tekenen g.drawRect(20,60,40,40); g.drawLine(20,60,40,40); g.drawLine(40,40,60,60); g.drawRect(70,60,40,40); g.drawLine(70,60,90,40);
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Reader en Writer Stream FileStream MemoryStream NetworkStream BufferedStream GZipStream CryptoStream TextWriter StreamWriter StringWriter BinaryWriter.
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Hoofdstuk 2 Hallo, C# !. Opbouw broncode nOpdrachten om het geheugen te veranderen nOpdrachten zijn gegroepeerd in methoden nMethoden zijn gegroepeerd.
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de.
Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de.
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
Eerste deeltentamen nNagekeken werk ligt voor in de zaal nNeem je eigen werk mee: in het college wordt het besproken nVragen over de beoordeling: in de.
1e Deeltentamen nNagekeken werk ligt voor in de zaal (alfabetisch op achternaam) nNeem het even mee, de uitwerking wordt in het college besproken nDiscussies.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 3 inleveropdrachten) college Tent. 1 Tent. 3 college prakt. 1 prakt. 3 prakt.
Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text.
Herhaling: He who does not learn from history, is doomed to repeat it.
Eigen klassen maken A new way of thinking.. Wat? Zie voorbeeld. Zie voorbeeld.
Exceptions Exception: nUitzonderlijke toestand die door een methode wordt opgeworpen nDe situatie moet door de aanroeper van de methode worden opgevangen.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Activity Bij het starten van een app:
Aanroep van een methode voert opdrachten uit in de body daarvan
ISensorEventListener
1e Deeltentamen Nagekeken werk ligt voor in de zaal (alfabetisch op achternaam) Neem het even mee, de uitwerking wordt in het college besproken Discussies.
Gameprogrammeren: Objecten en geheugen
Reader en Writer leest en schrijft bytes leest string en char
Gameprogrammeren: Overerving
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Methoden
Arjan Egges & Paul Bergervoet
vandaag èn vrijdag deadline maandag 12 dec.
Basis Gameprogrammeren
Declaratie Declaratie reserveert geheugenruimte
1. Een klasse is… Een groepje opdrachten Een groepje variabelen
Gameprogrammeren: Game Basics
Syntax van opdracht opdracht naam naam ( expressie ) ; . , expressie
Voorbeeld: Simulatie van bewegende deeltjes
Voortborduren op eerder gedaan werk
Practicum: schets-editor
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Klassen en objecten
Arjan Egges & Paul Bergervoet
Exceptions Exception:
Eerste deeltentamen Nagekeken werk ligt voor in de zaal
Transcript van de presentatie:

Hoofdstuk 8 Objecten en klassen

Programma en Geheugen opdrachten variabelen methoden objecten klasse veranderen zijn gegroepeerd in zijn gegroepeerd in methoden objecten bewerken zijn gegroepeerd in hebben als type klasse klasse klasse

Klasse-definitie Opsomming van methoden ieder bestaand uit opdrachten class Teller : Form { int t; Teller() { } Opsomming van methoden ieder bestaand uit opdrachten Paint += teken; MouseClick+=klik; t = 0; ... bewerken ... teken(...) { } g.DrawString(t...); Beschrijving van objecten door declaraties van variabelen ... klik(...) { } t = t+1; this.Invalidate(); }

Declaratie Declaratie reserveert geheugenruimte Voor een primitieve waarde zoals be- schreven in struct Size int x; x 5 x = 5; zoals be- schreven in klasse Button Voor een object-waarde s Size s; w 10 s = new Size(10,20); h 20 Voor een object-verwijzing Button b; b b = new Button();

Creatie van nieuwe objecten Objecten met als type een library-klasse type van het gewenste object Button b; b = new Button( ); Objecten met als type een zelfgemaakte klasse CirkelGroei cg; cg = new CirkelGroei( );

Creatie van objecten Opbouw van object is gespecificeerd in de klasse class CirkelGroei { Opbouw van object is gespecificeerd in de klasse : Form int straal; Button kleiner , groter; // methoden... cg clientsize geërfd paint text controls } zelf gedeclareerd straal kleiner groter

Constructor CirkelGroei( ) { } this // roept automatisch // constructor van // Form aan clientsize paint text controls null null } straal kleiner groter null null cs-cirkelobjecten

Constructor CirkelGroei( ) { } this // roept automatisch // constructor van // Form aan this.straal = 100; clientsize paint this.ClientSize = new Size(300,300); 500 300 text controls 500 } 300 straal kleiner groter 100 null null cs-cirkelobjecten

Constructor CirkelGroei( ) { } … this.Text = "CirkelGroei"; 500 300 clientsize paint 500 300 text controls 500 } 300 straal kleiner groter 100 null null cs-cirkelobjecten

Constructor CirkelGroei( ) { } … this.Text = "CirkelGroei"; this.Paint += this.teken; clientsize paint 500 300 text controls teken() {…} ...new Button()... 500 } 300 straal kleiner groter 100 null null location text click cs-cirkelobjecten

Constructor CirkelGroei( ) { } … this.kleiner = new Button(); this.groter = new Button(); clientsize paint 500 300 text controls teken() {…} 500 } 300 straal kleiner groter 100 null location click text cs-cirkelobjecten

Constructor CirkelGroei( ) { } … this.kleiner = new Button(); this.groter = new Button(); clientsize paint 500 300 text controls teken() {…} 500 } 300 straal kleiner groter 100 location location click click text text cs-cirkelobjecten

Constructor CirkelGroei( ) { } … this.kleiner.Text = "Kleiner"; this.groter.Text = "Groter"; clientsize paint 500 300 text controls teken() {…} 500 } 300 straal kleiner groter 100 location location click click text text cs-cirkelobjecten K l e i n r G r o t e

Constructor CirkelGroei( ) { } … this … this.kleiner.Location = new Point(30,20); C i r k e l G o this.groter.Location = new Point(200,20); clientsize paint 500 300 text controls teken() {…} 500 } 300 straal kleiner groter 100 location location click click 30 text 200 text cs-cirkelobjecten 20 20 K l e i n r G r o t e

Constructor CirkelGroei( ) { } … this.kleiner.Click = this.klik; this.groter.Click = this.klik; clientsize paint 500 300 text controls teken() {…} 500 } 300 straal kleiner groter 100 location location click click 30 text 200 text cs-cirkelobjecten 20 20 K l e i n r G r o t e klik() {…}

Constructor CirkelGroei( ) { } … this.Controls.Add (this.groter); this.Controls.Add (this.kleiner); clientsize paint 500 300 text controls teken() {…} 500 } 300 straal kleiner groter 100 location location click click 30 text 200 text cs-cirkelobjecten 20 20 K l e i n r G r o t e klik() {…}

Klassen en objecten Klasse-definitie in library Object-creatie in constructor Button Klasse-definitie in programma Object-creatie in Main CirkelGroei Klasse-definitie in programma Object-creatie in constructor Ruimte

Voorbeeld: Simulatie van bewegende deeltjes Simulatie - object Ruimte - objecten Deeltje - objecten Button - objecten

De klasse Simulatie class Simulatie : Form { Button stap, auto; Ruimte r1, r2, r3; Simulatie( ) { stap = new Button(); stap.Text = "stap"; auto = new Button(); auto.Text ="start"; r1 = new Ruimte(); r2 = new Ruimte(); r3 = new Ruimte(); ... } Klasse Ruimte gaan we zelf maken!

heeft drie eigen Deeltje - objecten De klasse Ruimte Ruimte is een uitbreiding van een bestaande Control class Ruimte { } : UserControl Deeltje d1, d2, d3; ieder Ruimte -object heeft drie eigen Deeltje - objecten // methoden nog toevoegen

om het deeltje te tekenen De klasse Deeltje Deeltje is helemaal zelfgemaakt class Deeltje { } positie van het Deeltje int x, y; int dx, dy; snelheid van het Deeltje Brush brush; // methoden nog toevoegen om het deeltje te tekenen

Samenhang van objecten Simulatie Samenhang van objecten Button geërfd van Form zelf gedeclareerd r1 r2 r3 stap auto sim Button d1 d2 d3 Ruimte d1 d2 d3 Ruimte d1 d2 d3 Ruimte geërfd van UserControl x y dx dy brush Deeltje x y dx dy brush Deeltje x y dx dy brush Deeltje

Constructie van nieuw object new-expressie doet twee dingen: r1 = new Ruimte ( ) ; r1 Geheugenruimte klaarzetten d1 d2 d3 Ruimte 100 200 Constructormethode aanroepen waarde is pijl naar het nieuwe object die je kunt opslaan

naam is hetzelfde als van de klasse Constructormethode naam is hetzelfde als van de klasse class Ruimte : UserControl { Deeltje d1, d2, d3; Ruimte ( ) { } geen resultaat- type! this . BackColor = Color.LightYellow; this . Paint += this.tekenRuimte; d1 = new Deeltje (...); d2 = new Deeltje (...); d3 = new Deeltje (...); geërfd van Canvas

De klasse Deeltje class Deeltje { int x, y, dx, dy; Brush brush; } int x, y, dx, dy; Brush brush; public Deeltje (...) {...} public void DoeStap (...) {...} public void TekenDeeltje(Graphics g ) {...}

Methoden van klasse Deeltje class Deeltje { } int x, y, dx, dy; Brush brush; public void TekenDeeltje ( Graphics gr) { gr . FillEllipse( this.brush , this.x – 4, this.y – 4 , 9 , 9 ); }

Methoden van klasse Deeltje class Deeltje { } int x, y, dx, dy; Brush brush; public void DoeStap ( ... ) { this.x += this.dx; this.y += this.dy; if (this.x<0) { } this.x = – this.x; this.dx = – this.dx; if (this.y<0) { ... } if (this.x>maxX) { ... } if (this.y>maxY) { ... }

Overzicht van klassen class Simulatie : Form stap_Click, auto_Click(object o, EventArgs ea) class Ruimte : UserControl Ruimte( ) TekenRuimte( object o, PaintEventArgs pea ) DoeStap( ) class Deeltje Deeltje( ... ) TekenDeeltje( Graphics g ) DoeStap( Size s )

Methoden van klasse Simulatie class Simulatie : Form { } Button stap, auto; Ruimte r1, r2, r3; void stap_Click(object o, EventArgs ea ) { r1 . DoeStap( ); r2 . DoeStap( ); r3 . DoeStap( ); }

Methoden van klasse Ruimte class Ruimte : UserControl { } Deeltje d1, d2, d3; void TekenRuimte(object o, PaintEventArgs pea ) { Graphics gr = pea.Graphics; d1.TekenDeeltje(gr); d2.TekenDeeltje(gr); d3.TekenDeeltje(gr); } void DoeStap( ) { d1.DoeStap(this.Size); d2.DoeStap(this.Size); d3.DoeStap(this.Size); this.Invalidate(); }