Objectgeoriënteerd Programmeren: WPO 2a
|
|
- Lander Hendrickx
- 7 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Objectgeoriënteerd Programmeren: WPO 2a 1. Inhoud Eenvoudige (enkelvoudige) overerving, override, ToString(), base, private, public, protected, virtual 2. Inleiding 2.1 Overerving In het voorgaande WPO hebben we gezien hoe we een klasse konden schrijven en op welke manier men deze tot een object kon instantiëren. In de oefeningen die daarop volgden werd er telkens gebruik gemaakt van 1 enkel type object. In grotere programma s kan het echter voorkomen dat men tijdens het schrijven van verschillende klassen opmerkt dat een aantal klassen gemeenschappelijke of gelijkwaardige code bevatten. Als deze klassen een gelijkwaardige functionaliteit implementeren (bv. ze moeten allemaal een vorm tekenen), kan het nuttig zijn om deze gemeenschappelijke functionaliteiten onder te brengen in een gemeenschappelijke klasse en deze klasse over te erven door andere klassen die elk een specifiek deel implementeren (cirkel, vierkant, enz.). Tijdens deze inleiding zullen we een tekenprogramma implementeren die een aantal vormen op het scherm kan tekenen Paint Schrijf een programma dat een vierkant en cirkel kan tekenen. In de eerste fase zal je een aparte klasse schrijven voor het vierkant en een aparte klasse voor de cirkel. Beide vormen beschikken over een grootte, een kleur en een positie (Point). Momenteel wordt nog geen gebruik gemaakt van overerving! Shape De klasse cirkel en de klasse vierkant hebben een aantal gemeenschappelijke eigenschappen: de positie, de grootte, de kleur. Het enige wat verschilt voor beide objecten is de vorm en dus het tekenen van het object op het scherm. Hoewel de huidige constructie heel legitiem is, is deze niet handig: gelijkwaardige code wordt niet hergebruikt, indien er een fout in de gekopieerde code voorkwam en is opgemerkt, moet deze in alle stukken code rechtgezet worden. 1
2 Daarom zullen we de gemeenschappelijke code onderbrengen in een gemeenschappelijke klasse. Deze klasse wordt ook een superklasse genoemd. Schrijf de klasse Shape waarin deze eigenschappen ondergebracht worden. Laat de 2 andere klassen hiervan overerven. Deze klassen zijn de kindklassen. De 2 klassen behouden weliswaar hun respectievelijke tekenfunctie Uitbreiding Het programma dat we nu hebben is geschikt om 2 type figuren weer te geven op het scherm. Maak 2 lijsten aan om de cirkels en vierkanten bij te houden. Zorg dat je ook alle getekende objecten kan weergeven in een listbox. Dit doe je door over alle objecten te loopen en de eigenschappen van de objecten te casten naar een string override ToString() Alle eigen geschreven klassen erven over van de klasse object. Deze klasse voorziet een aantal basisfunctionaliteiten. Een ervan is de methode ToString(). Door deze aan te roepen vraag je tekstuele informatie betreffende dat object. Deze methode is generiek en zolang men deze niet overschrijft zal deze ook weinig nuttigs teruggeven. Overschrijf (override) deze methode in de klassen cirkel en vierkant en zorg ervoor dat nuttige informatie teruggegeven worden. Een voorbeeldcode kan gevonden worden in codefragment 1. Deze manier wordt ook overriding genoemd en wordt gebruikt om bestaande methode met dezelfde naam te overschrijven. Codefragment 1: ToString() methode overriden. 1 public string override ToString() 2 { 3 return "Circle on position X = " X.ToString() + ", Y = " + Y.ToString(); 4 } Deze methode heeft een belangrijk voordeel: nu beschikken de objecten in onze code over een automatische manier om informatie in tekstuele vorm weer te geven. Als voorbeeld print je een object af in een MessageBox. Verwijder nu de loop die nodig was om de informatie in een listbox weer te geven, en wijs de lijst nu rechtstreeks toe aan de listbox. Opgelet: Het overriden van dergelijke methoden kan pas indien de superklasse over exact dezelfde methode beschikt en dat die methode als virtual wordt gedeclareerd. Codefragment 2: ToString() virtual methode in de superklasse. 1 public virtual string override ToString() 2 { 3 return "Objectname"; 4 } Dit mechanisme kan gebruikt worden in een eigen ontwerp. Indien men een generieke methode aanlevert maar men verwacht dat deze overschreven zal worden, kan men deze als virtual declareren. 2
3 2.1.5 Constructors Constructors zijn de eerste methoden die aangeroepen worden wanneer een object geïnstantieerd wordt. Constructors retourneren geen enkele worden, maar kunnen een willekeurig aantal argumenten opnemen. Constructors worden niet overgeërfd, maar worden opgeroepen door de kindklasse. Wanneer de superklasse over constructors beschikt die argumenten opnemen, moet deze contructor door de kindklasse expliciet opgroepen worden. In het andere geval volstaat een impliciete oproep, en hoeft die niet in de code vermeld te worden. Dit wordt weergegeven in codefragment 3. 3
4 Codefragment 3: Constructors en overerving 1 // public class Figures 3 { 4 public Figures() {// do something} 5 public Figures(int amount) { // do something} 6 7 //--- other code 8 } 9 // public class Ball:Figures 11 { 12 // this constructor calls the super constructor without arguments since it is allowed 13 // this call is implicit!!! 14 public Ball() { // do something} 15 } 16 // public class Rectangle:Figures 18 { 19 // this constructor calls the super constructor with arguments 20 // this call is explicit!!! 21 public Rectangle( int amount):base(amount) { // do something} 22 } Schrijf de nodige constructors in de 3 klassen Zichtbaarheid Naast public en private is er een vorm van zichtbaarheid die enkel invloed heeft tijdens het overerven: protected. Hieronder worden de volgende de verschillende vormen van zichtbaarheid opgesomd. Private: enkel zichtbaar binnen de eigen klasse. Niet zichtbaar buiten de klasse en ook niet zichtbaar binnen kindklassen. Protected: enkel zichtbaar binnen de eigen klasse en binnen de kindklassen. Public: zichtbaar voor iedereen Klassendiagram Visual Studio laat toe om een klassendiagram te tekenen a.d.h.v. de bestaande code. In dit soort van diagrammen worden de verbanden tussen de verschillende klassen weergegeven waardoor eventuele problemen gevisualiseerd kunnen worden. Maak een dergelijk diagram aan. 4
5 2.2 Samenvatting Overerving zorgt ervoor dat gemeenschappelijke en gelijkwaardige code in een gemeenschappelijke klasse onderbracht kan worden. Deze klasse wordt de superklasse genoemd. De klassen die van deze klasse overerven worden de kindklassen genoemd. Merk op dat een kindklasse op zijn beurt ook een superklasse kan zijn! Tijdens het overerven kan het voorkomen dat bepaalde methoden overschreven dienen te worden. Een bekende methode is ToString(). Soms worden die als overschrijfbaar gemarkeerd doordat deze methoden als virtual aangeduid worden. Bestaande methoden overschrijven vindt plaats door deze te overriden. Constructors worden niet overgeërfd. Deze worden impliciet of expliciet vanuit de kindklasse aangeroepen. Een expliciete oproep met de juiste argumenten is verplicht indien de superklasse niet over een constructor zonder argumenten beschikt. Soms kan het gebeuren dat een methode een methode van de superklasse moet aanroepen ondanks dat de klasse over dezelfde methode beschikt. In dit geval moet de methode voorafgegaan worden door base. 3. Oefeningen Demo 1: Meterstand Demo 2: Horizontale meterstand A: Softwarelibrary A: Rekenmachine A: Average E: Grafiek 3.1 Demo 1: Meterstand In deze opdracht wordt er een eigen component gemaakt die toelaat om de stand van een bepaalde sensor weer te geven. De component die we zullen behandelen ligt in het verlengde van het tekenen dat we tot hiertoe gewend zijn. Hoewel de wijze van tekenen zoals we die gewoon zijn redelijk goed is, heeft deze 2 nadelen. De code behoorde niet tot een eigen klasse. geschreven. Deze werd rechtstreeks in het formulier Het tekenen zorgde ervoor dat er flikkering ontstond. Om deze tekortkomingen tegen te gaan zullen we een eigen klasse schrijven. C# biedt de mogelijkheid om een eigen control aan te maken net zoals een button, panel, e.d. Eens deze component afgewerkt is, volstaat het deze net zoals een andere gekende component op het formulier te slepen. In codefragment 4 wordt de basis van een eigen (teken)control weergeven. 5
6 Codefragment 4: Basisstructuur van een usercontrol (met tekenen). 1 public partial class Figuren : UserControl 2 { 3 public Figuren() 4 { 5 InitializeComponent(); 6 // enable double buffering -> avoids flickering 7 this.setstyle( 8 ControlStyles.AllPaintingInWmPaint 9 ControlStyles.UserPaint 10 ControlStyles.DoubleBuffer, 11 true); 12 // avoiding flickering is only possible when we use the Paint event, so use it! 13 this.paint += Repaint; 14 // the refresh function forces our control to redraw everything in the paint function 15 this.refresh(); 16 } 17 /* */ 18 public void UpdateControl() 19 { 20 // force a refresh 21 this.refresh(); 22 } 23 /* */ 24 private void Repaint(object sender, System.Windows.Forms.PaintEventArgs e) 25 { 26 // draw the things as we always do 27 Graphics g = e.graphics; 28 g.clear(color.white); 29 Brush br = new SolidBrush(Color.Red); 30 g.fillrectangle(br, 10, 10, 100, 100); 31 g.drawstring("bla", this.font, br, 250, 250); 32 br.dispose(); 33 } 34 } Zorg ervoor dat je een meter kan bouwen zoals weergegeven in figuur 1. Deze meter wordt ingesteld a.d.h.v. een minimum- en maximum waarde. Deze eigenschappen zijn ook te raadplegen in de visuele editor van Visual Studio. (zie codefragment 5 als voorbeeld). Als uitbreiding kan je ook de eigenschappen toevoegen om een aantal kleuren binnen de grafiek aan te passen en om tekst te tekenen op de control. Gebruik een randomgenerator als input voor deze control. 6
7 Codefragment 5: Eigenschappen van de eigen control toevoegen in de properties venster binnen Visual Studio. 1 [System.ComponentModel.Browsable(true), // enable this in order to have it in the Visual Studio Properties Listing 2 System.ComponentModel.Category("Layout"), // set in the category of layout 3 System.ComponentModel.Description("Sets or gets the color of the control")] 4 public Color kleur 5 { 6 get { return this.kleur_; } 7 set 8 { 9 if (value!=null) 10 { 11 this.kleur_ = value; 12 } 13 } 14 } Figuur 1: Voorbeeld van een meter. 3.2 Demo 2: Horizontale meterstand Herneem voorgaande demo. Zorg ervoor dat je naast een verticale meter ook een horizontale meter kan tekenen. Probeer hierbij zoveel mogelijk methoden van de voorgaande oplossing over te nemen via overerving. Virtual methoden kunnen ook ingevoerd worden om een aantal zaken te vereenvoudigen. 7
8 3.3 A: Softwarelibrary Herneem de opdracht van de softwarelibrary van het voorgaande WPO. Pas het programma aan zodat de listbox automatisch wordt aangevuld wanneer een item aan de lijst wordt toegevoegd. Gebruik hiervoor de methode ToString(). 3.4 A: Rekenmachine Herneem de opdracht van het rekenmachine van voorgaande WPO. Pas het op dezelfde manier aan zoals de voorgaande opdracht. 3.5 A: Average Schrijf een applicatie die het mogelijk maakt om een gemiddelde te berekenen van een aantal ingevoerde waarden. Hierbij is het de bedoeling dat je de List overerft. Telkens een waarde in de lijst wordt toegevoegd, wordt het gemiddelde automatisch berekend. Ook de kleinste en de grootste waarde worden uit deze lijst met waarden bepaald. 3.6 E: Grafiek In figuren 2 en 3 kunnen een aantal grafieken gevonden worden. Schrijf zelf een usercontrol met alle nodige eigenschappen om een dergelijke grafiek te tekenen. Voorzie als input een sequentie van random gegenereerde waarden. Grafieken worden bepaald door een minimum- en maximumwaarde, de kleur, een eenheid, enz. Zorg ervoor dat de gemeenschappelijke eigenschappen en methoden in een superklasse ondergebracht worden. Specifieke methoden worden ondergebracht in de kindklassen (o.a. het tekenen). Figuur 2: Voorbeeld van een horizontale grafiek. 8
9 Figuur 3: Voorbeeld van een polar plot. 9
Programmeren in C# Overerving
Programmeren in C# Overerving Programmeren in C# 2 public class Balloon private int x = 50; private int y = 50; private int diameter = 20; public int Diameter getreturn diameter; setif (value
Nadere informatieKlassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers
1 Inhoud Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers 2 Geluidsbronnen simulator, deel 2 Inleiding De weergave versnellen
Nadere informatieObjectgeoriënteerd Programmeren: WPO 3
Objectgeoriënteerd Programmeren: WPO 3 1. Inhoud Eenvoudige (enkelvoudige) overerving, override, ToString(), base, private, public, protected, virtual 2. Oefeningen Demo: Scheepvaart A: Polygon A: Rekenmachine
Nadere informatieObjectgeoriënteerd Programmeren: WPO 4B
Objectgeoriënteerd Programmeren: WPO 4B 1. Inhoud Polymorfie 2. Oefeningen A: Polygon A: Rekenmachine A: Infection A: Waves E: Snake X: Pacman X: Planetendans 2.1 A: Polygon Herneem de opgave Polygon van
Nadere informatieObjectgeoriënteerd Programmeren: WPO 4
Objectgeoriënteerd Programmeren: WPO 4 1. Inhoud Abstracte klassen, override, ToString(), base, private, public, protected, virtual 2. Oefeningen Demo 1: Oppervlakteberekening Demo weerstation: Eigen usercontrol
Nadere informatieProgrammeren in C# Interfaces. Hoofdstuk 23
Programmeren in C# Interfaces Hoofdstuk 23 Programmeren in C# 2 Gradaties overerving Klassieke overerving Iets functioneels uitbreiden Code duplicatie Niet teveel aanpassingen aan bestaande code Objecten
Nadere informatieInformatica: C# WPO 2
Informatica: C# WPO 2 1. Inhoud If, globale variabelen, debuggen, randomgetallen, strings vergelijken 2. Oefeningen Demo 1: Deelbaar door 0 Demo 2: Kassa Demo 3: Debug oplossingen demo s 1 en 2 A: Verschillend
Nadere informatieIMP Uitwerking week 13
IMP Uitwerking week 13 Opgave 1 Nee. Anders moet bijvoorbeeld een venster applicatie een subklasse zijn van zowel Frame en WindowListener. Als de applicatie ook een button of een menu heeft, dan moet het
Nadere informatieDatatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.
Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort
Nadere informatieObjectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.
Herhaling Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. De basisbouwsteen is het object; een geïntegreerde eenheid van data en operaties werkend op deze
Nadere informatieUitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur
Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur 1. (2 punten per deelvraag) Deze opgave bestaat uit een aantal tekstvragen. Houd het antwoord kort: een
Nadere informatieOvererving & Polymorfisme
Overerving & Polymorfisme Overerving Sommige klassen zijn speciaal geval van andere klasse Docent is een speciaal geval van werknemer, dwz. elke docent is ook werknemer Functionaliteit van docent = functionaliteit
Nadere informatieInformatica: C# WPO 6
Informatica: C# WPO 6 1. Inhoud Timers, switch cases, combobox 2. Oefeningen Demo 1: Bounce Demo 2: Hex to decimal converter Demo 3: Debug oplossing demo 1 A: Count to 10 A: Biljarttafel A: To reverse
Nadere informatieDerde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur
Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde
Nadere informatieVakgroep CW KAHO Sint-Lieven
Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be
Nadere informatieUitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf
Nadere informatieVerder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn.
Objectgeoriënteerd PHP (versie 5) Kennisvereisten: Ervaring met programmeren in PHP met MySQL Je weet wat een class of klasse is Je weet wat een instantie van een klasse (een object) is Je weet wat een
Nadere informatieDerde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, uur
Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, 8.30-10.30 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde
Nadere informatieVisual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET
Visual Basic.NET M. den Besten 0.3 VB. NET Inhoud Voorwoord Deel 1 Visual Basic.NET 1.1 Inleiding...13 1.2 De programmeertaal Visual Basic.NET...14 1.3 Microsoft Visual Basic 2010 Express Edition...15
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 18 december 2015 Overerving (inheritance) Constructors Overriding Inheritance demo Exceptions Zelf exceptions veroorzaken Overerving (inheritance) 2-dimensionaal
Nadere informatieLabo 2 Programmeren II
Labo 2 Programmeren II L. Schoofs K. van Assche Gebruik Visual Studio 2005 om een programma te ontwikkelen dat eenvoudige grafieken tekent. Deze opgave heb je vorig academiejaar reeds in Java geïmplementeerd.
Nadere informatieVB Magazine Online 2004 01/08 1 / 6
Een van de krachtigste elementen binnen Visual Basic 2003 vind ik wel de mogelijkheid om objecten te overerven; ook wel inheritance genoemd. U kunt niet alleen uw eigen classes en business objecten overerven,
Nadere informatieVersie 2: B C D D A C D A C C. Versie 3: C D A A B D A B D D. Versie 4: A D C C B D C B D D. Versie 5: B A D D C A D C A A
Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 1 februari 2019, 11.00 13.00 uur Voor de meerkeuzevragen hebben we verschillende versies. Dit zijn de juiste antwoorden per versie.
Nadere informatieInformatica: C# WPO 12
Informatica: C# WPO 12 1. Inhoud Datacontainers, bestanden uitlezen, bestanden schrijven en data toevoegen aan en bestand, csv-bestanden 2. Oefeningen Demo 1: Point2D Demo 2: Notepad Demo 3: Read CSV-file
Nadere informatieAbstracte klassen & Interfaces
Abstracte klassen & Interfaces Overerving public class Vierhoek {... Vierhoek public class Rechthoek extends Vierhoek {... public class Ruit extends Vierhoek {... Rechthoek Ruit Elke rechthoek is een vierhoek.
Nadere informatieDerde deeltentamen Gameprogrammeren Vrijdag 7 november 2014, uur
Naam: Derde deeltentamen Gameprogrammeren Vrijdag 7 november 2014, 11.00-13.00 uur Studentnummer: Het tentamen bestaat uit 3 opgaven. Opgaven 1 levert 20 punten op, opgave 2 levert 10 punten op, en opgave
Nadere informatieProgrammeren in C# Samenvatting van C#
Programmeren in C# Samenvatting van C# Proceduraal Programmeren Functies (O: void + return, I: referentie of value) Arrays, Lijsten Lussen (for, while, do while) Condities, if-else, switch Variabelen,
Nadere informatieInformatica: C# WPO 6
Informatica: C# WPO 6 1. Inhoud Timers, switch cases, combobox 2. Oefeningen Demo 1: Bounce Demo 2: Hex to decimal converter Demo 3: Debug oplossing demo 1 A: Count to 10 A: Biljarttafel A: Azerty to qwerty
Nadere informatieInformatica: C# WPO 13
Informatica: C# WPO 13 1. Inhoud Bestanden uitlezen, bestanden schrijven en data toevoegen aan een bestand, csv-bestanden 2. Oefeningen Demo 1: Notepad Demo 2: Read CSV-file Demo 3: Write CSV-file A: Plot
Nadere informatievoegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is
PROEF-Tentamen Inleiding programmeren (IN1608WI), X januari 2010, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Open boek tentamen: bij het tentamen mag alleen gebruik worden gemaakt
Nadere informatieInformatica: C# WPO 5
Informatica: C# WPO 5 1. Inhoud While-loop, do while, debuggen, graphics 2. Oefeningen Demo 1: Power of 2 Demo 2: Tel totdat... Demo 3: Debug oplossing demo s 1 en 2 A: Count down A: Random counting A:
Nadere informatieObjectgeoriënteerd Programmeren: WPO 1
Objectgeoriënteerd Programmeren: WPO 1 1. Inhoud Klassen, objecten, methoden, properties, private vs. object, this. public, velden, instantie, reference to 2. Inleiding 2.1 Objecten en klassen 2.1.1 Punt
Nadere informatieKlassen. Hoofdstuk Klassen
212 Hoofdstuk 12 Klassen blz. 213 blz. 214 12.1 Klassen Een klasse is een groepje methoden. Dat hebben we in de programma s tot nu toe wel gezien: we definieerden steeds een of meerdere klassen (in ieder
Nadere informatieIn de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.
4. Array s Een array is een geïndexeerde variabele. Deze zin zal de nodig vragen oproepen, waarop enige uitleg van toepassing is. Met variabelen hebben we al kennis gemaakt. In een variabele kun je iets
Nadere informatieUitwerking Tweede deeltentamen Imperatief programmeren Vrijdag 19 oktober 2012, uur
Uitwerking Tweede deeltentamen Imperatief programmeren Vrijdag 19 oktober 2012, 11.00-13.00 uur 1. Deze opgave bestaat uit een aantal tekstvragen. Houd het antwoord kort: een of twee zinnen per onderdeel
Nadere informatieProgrammeren in Java 3
7 maart 2010 Deze les Zelf componenten maken Concurrency (multithreading): werken met threads levenscyclus van een thread starten tijdelijk onderbreken wachten stoppen Zelf componenten maken Je eigen component:
Nadere informatieDergelijke functionaliteit kunnen we zelf ook aan eigen code toevoegen.
Indexers in C#.Net In deze tutorial ga ik het hebben over indexers. Bij het gebruik van bijvoorbeeld een ArrayList object, kan je de gegevens uit deze collectie opvragen als ware het een array. // ArrayList
Nadere informatieSyntax van opdracht. opdracht. expressie. variabele. = expressie ; klasse naam. methode naam. property naam += object
Syntax van opdracht opdracht klasse naam methode naam ( expressie ) ; object expressie. property naam +=, variabele = expressie ; Static gewone methoden Bewerken een object Aanroep: object. methode ( )
Nadere informatieUitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur
Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, 13.00-15.00 uur 1. De situatie die ontstaat door class A : B C D; kan beschreven worden door (a) B is een A (b)
Nadere informatieUniversiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren
Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int
Nadere informatieObjectgeoriënteerd Programmeren: WPO 2
Objectgeoriënteerd Programmeren: WPO 2 1. Inhoud Klassen, objecten, methoden, properties, private vs. object, this. public, velden, instantie, reference to 2. Oefeningen Demo 1: Bugs Demo 2: Kleurcodes
Nadere informatieAPPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts
APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN Onderdeel van SmartProducts INHOUD COLLEGE 3 Scope van variabelen {3.9} Class ontwerpen en maken,
Nadere informatieAan het eind van deze lesbrief wordt uitgelegd wat het nut van OOP is en vind je een aantal oefenopdrachten.
Doel van deze lesbrief Deze lesbrief is bedoeld om je op de hoogte te brengen van de basisbegrippen die gangbaar zijn bij object georiënteerd programmeren (OOP). In deze lesbrief kom je korte codefragmenten
Nadere informatieOpdracht 7a. Applicatiebouw 2014/2015
Applicatiebouw 2014/2015 Opdracht 7a Inhoud Applicatiebouw op dag 7 College In het college wordt oa. overerving behandeld, waarmee je uit een bestaande klasse een nieuwe andere klasse kan maken. Ook zijn
Nadere informatieScala. Korte introductie. Sylvia Stuurman
Korte introductie Sylvia Stuurman Wat is er zo bijzonder aan? Schaalbaar Objectgeoriënteerd (handiger dan Java!) Functioneel Scripts schrijven Gecompileerd: Java bytecode Pagina 2 voor scripts Pagina 3
Nadere informatieKleine cursus PHP5. Auteur: Raymond Moesker
Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven
Nadere informatieEen gelinkte lijst in C#
Een gelinkte lijst in C# In deze tutorial ga demonstreren hoe je een gelinkte lijst kan opstellen in C#. We gaan een klasse schrijven, die een gelijkaardige functionaliteit heeft als een ArrayList, namelijk
Nadere informatieInformatica: C# WPO 11
Informatica: C# WPO 11 1. Inhoud Pass by reference (ref, out), recursie, code opdelen in verschillende codebestanden 2. Oefeningen Demo 1: Swapfunctie Demo 2: TryParse(int) Demo 3: Recursion Tree Demo
Nadere informatieVeel succes! 1. Gegeven is de volgende klasse:
Dit tentamen is in elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. A Eskwadraat kan niet aansprakelijk worden gesteld voor de gevolgen van eventuele fouten in dit tentamen. Derde deeltentamen
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in
Nadere informatieObjectgeoriënteerd Programmeren: WPO 1
Objectgeoriënteerd Programmeren: WPO 1 1. Inhoud Opfrissing syntax, programmeermethodes, datatypes, functies/procedures, tekenen in C#. Herhaling Informatica 1 ste bachelor. 2. Oefeningen Demo 1: Volume
Nadere informatieProject network. Gebaseerd op paragrafen , uit het boek. We simuleren een sociaal netwerk
Project network Gebaseerd op paragrafen 10.1-10.7, 11.1-11.6 uit het boek. We simuleren een sociaal netwerk Er zijn twee soorten berichten: tekstberichten en fotoberichten,... voorgesteld door de klassen
Nadere informatieVeel succes! 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn.
Tweede deeltentamen Gameprogrammeren Vrijdag 18 oktober 2013, 11.00-13.00 uur Naam: Studentnummer: Het tentamen bestaat uit 3 opgaven. Opgaven 1 levert 10 punten op, opgave 2 levert 6 punten op, en opgave
Nadere informatieVI. Klassen en objecten
VI. Klassen en objecten Klassen en objecten vormen het fundament van OOP. We zullen dus uitgebreid aandacht besteden aan klassen en objecten. U kunt Java niet begrijpen zonder goed met klassen en objecten
Nadere informatievandaag èn vrijdag deadline maandag 12 dec.
vandaag èn vrijdag deadline maandag 12 dec. Herhaling met een teller int t ; t = 0; for while ( ( t=0 t
Nadere informatieOmschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing.
irkel (met Jpanel) ij de onderstaande opdracht behoort het bestand Panels: JPanels_1.java (map Panel) in de map irkel. pplicaties in Java hebben altijd een publieke klasse waarin een methode main voorkomt.
Nadere informatieTweede deeltentamen Gameprogrammeren Vrijdag 17 oktober 2014, uur
Naam: Tweede deeltentamen Gameprogrammeren Vrijdag 17 oktober 2014, 8.30-10.30 uur Studentnummer: Het tentamen bestaat uit 3 opgaven. Opgaven 1 levert 10 punten op, opgave 2 levert 10 punten op, en opgave
Nadere informatieHoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.
Hoofdstuk 1: Inleiding Objectoriëntatie: 1. Objecten & klassen: samenwerking van componenten om bepaald doel te bereiken; herbruikbaarheid. 2. Encapsulation: afschermen gedragingen en kenmerken van de
Nadere informatieVoorbeeld: Simulatie van bewegende deeltjes
Voorbeeld: Simulatie van bewegende deeltjes Simulatie - object Ruimte - objecten Deeltje - objecten Button - objecten Simulatie Samenhang van objecten sim geërfd van Form stap zelf gedeclareerd auto r1
Nadere informatieDerde deeltentamen Gameprogrammeren Vrijdag 9 november 2012, uur
Naam: Derde deeltentamen Gameprogrammeren Vrijdag 9 november 2012, 8.30-10.30 uur Studentnummer: Het tentamen bestaat uit 2 opgaven. Opgaven 1 levert 15 punten op. Opgave 2 levert 25 punten op. Je cijfer
Nadere informatieInformatica: C# WPO 9
Informatica: C# WPO 9 1. Inhoud Functies (functies met return-waarde) 2. Oefeningen Demo 1: Som Demo 2: Min en max of array Demo 3: Retourneer array van randomwaarden A: Absolute waarde A: Afstand A: Aantrekkingskracht
Nadere informatieStacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49
Stacks and queues Introductie 45 Leerkern 45 6.1 Stacks 45 6.2 Queues 47 6.3 Double-ended queues 48 Terugkoppeling 49 Uitwerking van de opgaven 49 Bijlage: Diagrammen belangrijkste interfaces en klassen
Nadere informatieWindows-applicatie. using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( )
Windows-applicatie using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( ) { Form scherm; declaratie en toekenning van een variabele met type Form scherm = new Form( );
Nadere informatie// schrijf een static methode die telt hoe // vaak een symbool voorkomt in een string // voorbeeld-aanroep: int n; n = Demo. Freq( e, "some text" );
Publieksvraag // schrijf een static methode die telt hoe // vaak een symbool voorkomt in een string // voorbeeld-aanroep: int n; n = Demo. Freq( e, "some text" ); // hint: gebruik een for opdracht Tel
Nadere informatieVeel succes! 1. Deze opgave bestaat uit een aantal vragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn.
Eerste deeltentamen Gameprogrammeren Vrijdag 27 september 2013, 8.30-10.30 uur Naam: Studentnummer: Het tentamen bestaat uit 4 opgaven. Elke opgave levert 10 punten op. Je cijfer is het totaal aantal punten
Nadere informatieObjectgeoriënteerd Programmeren: WPO 1
Objectgeoriënteerd Programmeren: WPO 1 1. Inhoud Opfrissing syntax, programmeermethodes, datatypes, functies/procedures, tekenen in C#. Herhaling Informatica 1 ste bachelor. 2. Oefeningen Demo 1: Volume
Nadere informatieVeel succes! 1. Deze opgave bestaat uit een aantal vragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn.
Eerste deeltentamen Gameprogrammeren Vrijdag 26 september 2014, 8.30-10.30 uur Naam: Studentnummer: Het tentamen bestaat uit 4 opgaven. Elke opgave levert 10 punten op. Je cijfer is het totaal aantal punten
Nadere informatieProgrammeren (1) Examen NAAM:
Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft
Nadere informatieUitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, uur
Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, 11.00-13.00 uur 1. Een klasse is niet: (a) het type van een object (b) een groepje methoden (c) een groepje variabelen
Nadere informatieInformatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele
Informatica Objectgeörienteerd leren programmeren Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode Objectgeörienteerd
Nadere informatieSYNTRA-WEST. Initiatiecursus JAVA. Deel
SYNTRA-WEST Initiatiecursus JAVA Deel Syntra-West Syntra-West (vroeger Vormingsinstituut West-Vlaanderen) Doorniksesteenweg 220 8500 Kortrijk Tel. 056/26.02.00 Fax 056/22.81.07 i Inhoudsopgave SYNTRA-WEST...
Nadere informatieInformatica: C# WPO 7
Informatica: C# WPO 7 1. Inhoud 1D-arrays, Lijsten 2. Oefeningen Demo 1: Vul de 1D-array Demo 2: Stringreplace Demo 3: Vul de lijst Demo 4: Debug oplossingen demo s 1, 2 en 3 A: Array reversal A: Gemiddelde
Nadere informatieZelftest Programmeren in Java
Zelftest Programmeren in Java Document: n0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST PROGRAMMEREN IN JAVA Deze test
Nadere informatieNAAM: Programmeren 1 Examen 21/01/2011
Programmeren 1 21 januari 2011 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet
Nadere informatieDe sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall,
sheets Programmeren 1 Java college 4, Walter Kosters De sheets zijn gebaseerd op met name hoofdstuk 8 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/
Nadere informatieUitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 22 december 2017, uur
Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 22 december 2017, 8.30 10.30 uur 1. De symbolencombinatie /= betekent (a) hier begint een meer-regelig commentaar (b)... wordt één-...
Nadere informatieMijn eerste ADO.NET applicatie
Hoofdstuk 2 Mijn eerste ADO.NET applicatie ADO staat voor ActiveX Database Objects. Dit is een verzameling klassen die onderdeel uitmaken van het.net framework, waarmee je verbinding kunt maken met een
Nadere informatiepublic Bier ( string N, double P, Brouwerij B) { Naam = N; AlcoholPerc = P; Brouwer = B;
Beschouw bijvoorbeeld de twee onderstaande klassen, waarvan de attributen en eigenschappen geannoteerd zijn met bijkomende XML-annotaties: using System ; using System. Xml ; using System. Xml. S e r i
Nadere informatieAndroid apps met App Inventor 2 antwoorden
2014 Android apps met App Inventor 2 antwoorden F. Vonk versie 1 11-11-2014 inhoudsopgave Mollen Meppen... - 2 - Schrandere Scholier... - 15 - Meteoor... - 21 - Dit werk is gelicenseerd onder een Creative
Nadere informatieUitwerkingen Derde deeltentamen Imperatief programmeren Vrijdag 12 november 2010, uur
1. (telt voor 20%) Uitwerkingen Derde deeltentamen Imperatief programmeren Vrijdag 12 november 2010, 8.30-10.30 uur Bij het spel Reversi leggen twee spelers om de beurt een gekleurde steen op een veld
Nadere informatieDesign patterns Startbijeenkomst
Design patterns Startbijeenkomst Harrie Passier Docenten Sylvia Stuurman (1 e examinator) Sylvia.Stuurman@ou.nl Harrie Passier (2 e examinator) Harrie.Passier@ou.nl Aarzel niet vragen te stellen! Rooster
Nadere informatieUitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur
Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, 8.30-10.30 uur 1. Een Intent-object wordt gebruikt voor communicatie (a) van een Activity naar een bijbehorende View
Nadere informatieOpdrachten herhalen. public void tekenscherm (object o, PEA pea) { int x; x = 1; zolang de voorwaarde geldig is
Opdrachten herhalen public void tekenscherm (object o, PEA pea) { int x; x = 1; while ( x
Nadere informatieStacks and queues. Hoofdstuk 6
Hoofdstuk 6 Stacks and queues I N T R O D U C T I E In dit hoofdstuk worden drie datastructuren stack, queue en deque behandeld. Om deze datastructuren te implementeren, worden onder andere arrays en linked
Nadere informatieTentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft
Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit
Nadere informatieExamen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Schrijf je naam onderaan op elk blad. 2.
Nadere informatieLeren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie
Leren Programmeren met Visual Basic 6.0 Les 3+4 Hoofdstuk 4 : De Selectie Visual Basic 6.0 1 Basisstructuren (herhaling) Sequentie (HK2) : Alle opdrachten gewoon na mekaar uitvoeren. Hier worden geen keuzes
Nadere informatieTentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld
Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag u gebruik maken van: Barnes, Object-Oriented Programming with Java en de Notitie Algoritmiek
Nadere informatieWat is een grafische gebruikersinterface (GUI)?
Wat is een grafische gebruikersinterface (GUI)? GUI is een Engelse afkorting voor Graphical User Interface, oftewel grafische gebruikersinterface. Het is de term voor het bedieningspaneel van een computerprogramma.
Nadere informatieNHibernate als ORM oplossing
NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een
Nadere informatieOm de libraries te kunnen gebruiken, moet de programmeur (een deel van) zijn programma in C/C++ schrijven.
1 Inleiding tot.net Software werd en wordt meestal geschreven in C of C++. De broncode van een C/C++ programma wordt dan gecompileerd naar machine code, die eventueel nog gelinkt wordt met machine code
Nadere informatieStap 1 Eenvoudig tekenprogramma maken In eerste instantie alleen 'freehand' curves Demo in de les
Tekenen in Java Doel Stap 1 Eenvoudig tekenprogramma maken In eerste instantie alleen 'freehand' curves Demo in de les Stap 2 Tekening opslaan op file en weer teruglezen Demo in de les Stap 3 Rechthoeken,
Nadere informatieUitwerking Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, 11.00-13.00 uur
Uitwerking Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het
Nadere informatieInformatica: C# WPO 8
Informatica: C# WPO 8 1. Inhoud Procedures (functies zonder return-waarde) 2. Oefeningen Demo 1: Teken driehoeken Demo 2: Print array of double A: Stapel blokken A: Weerstanden 1 A: Weerstanden 2 A: Draw
Nadere informatieDerde deeltentamen Imperatief programmeren - versie 1 Vrijdag 11 november 2016, uur
Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 11 november 2016, 8.30 10.30 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde
Nadere informatieMaak een pivot uit een Generic.List
Maak een pivot uit een Generic.List Introductie in extensions, reflection en code generation Nivo: 400 Introductie In bepaalde gevallen komt het voor dat je een Generic.List van een specifieke class hebt,
Nadere informatieLessen Java: Reeks pag. 1
Lessen Java: Reeks 2 1-3-2016 pag. 1 Primitieve types type grootte waardes byte 8 bits 128, 127 short 16 bits 32768, 32767 int 32 bits 2 31, 2 31 1 long 64 bits 2 63, 2 63 1 type grootte waardes float
Nadere informatieAanvullende toets Gameprogrammeren Woensdag 5 januari 2011, uur
Dit tentamen is in elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. A Eskwadraat kan niet aansprakelijk worden gesteld voor de gevolgen van eventuele fouten in dit tentamen. Aanvullende
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 25 november 2015 Herhaling Meer herhaling Recursie Mutuele recursie Objecten Herhaling Fibonacci class Fibonacci { public static void fibonaccitot(int bovengrens)
Nadere informatieKwis (3) class X { public void a() { System.out.println("x"); public static void main(string[] args) { X x = new X();
Kwis (3) class X { public void a() { System.out.println("x"); class Y extends X { public void a() { System.out.println("y"); class Z extends Y { public void a() { System.out.println("z"); public static
Nadere informatie