Objecten en klassen. 1.1 Objectgeoriënteerde taal

Vergelijkbare documenten
HOOfDsTuk 1 Objecten en klassen

Leerpaden maken. 1. Account en wachtwoord. 2. Maak een nieuw leerpad aan. 3. Inhoud aan een leerpad toe voegen. 4. Structuur aanbrengen op een pagina.

Kennismaken Greenfoot

Je eerste mailtjes met een computer

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

INLEIDING TOT GEOGEBRA

Studentenhandleiding Studentenpagina STUDENTENPAGINA HANDLEIDING VOOR STUDENTEN. Handleiding Studentenpagina 1

Handleiding JCreator. Inhoud. Een Workspace en een eerste project maken

Stap 2 Je template invullen

Les 2 De basis (deel 1)

Website maker. Bezoek je domein om de Website maker in te stellen. De volgende melding zal zichtbaar zijn.

Bestanden bewaren met SkyDrive

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Inloggen: Opbouw site: Een handleiding/introductie voor de nieuwe site van Fotoclub VPR.

Dieper in Visual Basic.Net

Handleiding van de Bibliotheek: e-books lezen op je e-reader - voor OS X (Mac)

Grafieken tekenen met de computer

Handleiding Joomla CMS

Werkschrift : Hoe werk ik op WikiKids?

Handleiding voor het maken van je eigen webpagina op de schoolsite

Bestanden ordenen in Windows 10

Het maken, plaatsen en beheren van symbolen (blocks) In deze beschrijving zijn de afbeeldingen uit de windows versie van AutoCad 2013

Om paint te openen volgen we dezelfde weg als bij de rekenmachine:

NetBeans tutorial, Rik Eshuis, Kees Huizing versie 2.2 Augustus 2009

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

Handleiding van de Bibliotheek: e-books lezen op je e-reader - voor Windows

Foto s plaatsen op de site van Taborschool Sint Maria Aalter

Welkom bij onze gratis cursus Door hoemaakjeeenblog.nl

Snel aan de slag met BasisOnline en InstapInternet

Bloggen met blogdirect

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

I. Vorming 1 (12/04/2012) 1. Werken met een tekstverwerker p2 2. Mappenstructuur op een computer p6 3. Externe USB- stick gebruiken p10

Voer uw gegevens in en tik 'Account maken' Tik 'Akkoord' voor het accepteren van de gebruiksvoorwaarden

HANDLEIDING scoolplan COACH

Microsoft PowerPoint is een programma om presentaties en diavoorstellingen te maken.

Stappenplan Scannen. Hoe te scannen: Start het programma ABBYY Finereader op

Wegwijzer bij de cd-rom

Handleiding : Regletten in Pharmawin

Lijnen/randen en passe-partouts maken met Photoshop.

Van website naar e-zine Composer template

Les 1: Inleiding tot Alice

Handleiding van de Bibliotheek: e-books lezen op je e-reader - voor Windows en Sony e-reader

Versturen van vanuit een Delphi VCL toepassing

Fotografie Sophie Berten Zeelaan De Panne 058/ Fotogeniek - Creative photos Handleiding

1. Gebruik van de online tekstverwerker op de schoolwebsite.

Handleiding WordPress Bakkeveen.nl

4. Beveiligen en instellen

Microsoft Publisher 2003

Aan de slag met Windows 10

3. MAAK JE KAART MET GOOGLE MAP

Handleiding De Biedwedstrijd

Programmeren met Scratch

Een eerste applicatie

Boutronic Dongle driver installeren

Modulewijzer tirprog02/infprg01, programmeren in Java 2

Faq Droogsurfen Jeroen Devlieghere Ine Callebaut

Ga naar en log in met de gebruikersnaam en wachtwoord verkregen via mail.

Vereiste kennis. 1 Java-editor. 2 Het compileren van een programma

Aan het eind van deze lesbrief wordt uitgelegd wat het nut van OOP is en vind je een aantal oefenopdrachten.

Basishandleiding WordPress

MOTUS- APP: De gebruikersgids

Schoolwebsite.nu. Snel aan de slag met uw website. Versie 4.0

ICT Publisher

Inleiding Het adres Hoe werkt ? Je adres registreren Aanmelden bij Outlook Schermonderdelen...

Opdracht 1 : Een eerste werkblad

Handleiding installeren en configureren programmeeromgeving tbv de module JavaEditor

Handleiding Wordpress

Handleiding

1. Open het programma WORD, dit doe je door te dubbelklikken (2 keer snel achter elkaar) op dit icoontje.

Inhoudstafel. 1. Pictoselector installeren en updaten. 2. Een nieuw pictoblad maken. 3. Geef het blad een titel. 4. Zoek picto s

Handleiding Weken met een Chromebook

WERKEN MET GOOGLE ADMINISTRATIEF WERK MAART 2017

EEN WEBLOG MAKEN MET BLOGGER

Elektronisch factureren

Handleiding Japanse puzzels

Instructieblad. 6.1 PDF-bestand downloaden

En wat wil je nu met dit programma, wil je de wereld bekijken vanaf boven of wil je weten waar iedereen die je kent woont. Er zijn al een aantal

Open Safari op de Mac, ga naar de webpagina en klik op SSH scripts Mac OS X : Figure 1 SSH scripts downloaden

Dienst Bestuur & organisatie Guimardstraat BRUSSEL DOCUMENT

Handleiding weblog: Bagage voor je stage!

via de taakbalk en typ Uitvoeren en open de gelijknamige app

Met een LightSwitch applicatie een OData service uit de Windows Azure Marketplace consumeren

OUTLOOK ACCOUNTS POSTVAKKEN SORTEERREGELS HANDTEKENINGEN

Les Webform INLEIDING VOORBEREIDING

Handleiding van de Bibliotheek: e-books lezen op je e-reader - versie voor OS X (Mac)

Als we Outlook opstarten zien we het hiernaast afgebeelde scherm, wat voor de meeste mensen toch wel enige uitleg behoeft, van boven naar onder:

Handleiding van de Bibliotheek. E-books lezen op je e-reader - voor Windows

Afdrukken in Calc Module 7

Deel 1: PowerPoint Basis

Het werken met het nieuwe netwerk zal even wennen zijn, het grootste deel van de programma s waarmee je werkt blijven echter hetzelfde.

Gebruik van itunes met de ipod

Hoofdstuk 1 Wat zijn apps eigenlijk?

HANDLEIDING. WordPress LAATSTE VERSIE: RODER!CKVS WEBDESIGN & WEBHOSTING

Programmeren in Java 3

Iedereen online, van 9 tot 99 jaar. Les De webbrowser, onze surfplank door het wereldwijde web. Deze iconen tonen aan voor wie het document is

File: M.Peters / Powerpoint 1

Handleiding. Inschrijven op bardiensten

Tekstverwerking. Wat gaan we leren? Opdracht: Geavanceerde opmaak. Jen Kegels, Eveline De Wilde, Inge Platteaux, Tamara Van Marcke

Verbinden met FTP server

Transcriptie:

Objectgeoriënteerde taal Object Klasse Instantie Java in BlueJ Toestand van een object Klassendefinitie Herhalingsoefeningen Objecten en klassen 1.1 Objectgeoriënteerde taal Als je een computerprogramma schrijft, doe je dat omdat je in jouw leefwereld een probleem ontdekt hebt waarvan je denkt dat de rekenkracht van de computer een helpende hand kan betekenen bij het vinden van een oplossing. Jammer genoeg kan je niet zomaar een mailtje schrijven naar je computer met de vraag om jouw probleem op te lossen. Je zal op een welbepaalde manier je probleem moeten meedelen aan de computer en meer nog, je zal de computer moeten helpen je probleem op te lossen. Anders gezegd, je zal de computer moeten programmeren om voor jouw leefwereld een probleem op te lossen. Een computerprogramma programmeren doe je niet in een willekeurige teksteditor, zoals Kladblok (Windows) of Pages (Mac OS X). Je moet eerst een programmeertaal en een gepaste ontwikkelomgeving (IDE of Integrated Development Environment) kiezen. De keuze van beide is niet alleen afhankelijk van het probleem dat je wenst op te lossen, maar ook van je eigen kennis en vaardigheden. Er spelen nog andere factoren waar we hier niet dieper op ingaan. In dit boek kiezen we voor de objectgeoriënteerde programmeertaal Java. De keuze ligt zeer voor de hand: Java is één van de meest gebruikte programmeertalen ter wereld en objectgeoriënteerd programmeren (OOP of object-oriented programming) is een veel gebruikte programmeertechniek. Is het dan erg dat jouw vriend(in) leert programmeren in een andere programmeertaal? Nee, elke programmeertaal heeft immers zijn voor- en nadelen. Je zal zien dat eenmaal je een programmeertaal onder de knie hebt, het leren van een tweede programmeertaal behoorlijk eenvoudig is. Situeert de programmeertaal zich niet bij de objectgeoriënteerde programmeertalen, dan zal je wel geconfronteerd worden met andere concepten. 1

6 Objecten en klassen Java kan je programmeren in verschillende IDE s zoals Netbeans, Eclipse enz. Dit zijn typisch ontwikkelomgevingen voor het maken van bedrijfsklare softwarepakketten. We zouden perfect onze eerste programmeerstappen kunnen zetten in zo een omgeving en ons beperken tot eenvoudige programma s. Maar dat doen we bewust niet. In plaats van onmiddellijk een bedrijfsklaar softwarepakket te maken, gaan we ons eerst de concepten van objectgeoriënteerd programmeren eigen maken met behulp van BlueJ. BlueJ is speciaal ontwikkeld om objectgeoriënteerd te leren programmeren. Het is dus belangrijk te weten dat we in eerste instantie gaan kijken hoe de programmeercode van een programma werkt eerder dan dat we een kant-en-klaar programma gaan programmeren. Dat laatste komt ongetwijfeld aan bod in een vervolgcursus. 1.1.1 Object De kern van objectgeoriënteerd programmeren wordt gevormd door twee basisconcepten. Het eerste basisconcept is object. Concept Object. Objecten fungeren als model voor de elementen waarin een probleem kan worden opgesplitst. In een objectgeoriënteerde programmeertaal proberen we op de computer een model te maken van een klein stukje van de werkelijkheid. Om dit goed te snappen, bestuderen we eerst een afbeelding van het spelletje 2014 FIFA World Cup van EA SPORTS. Indien we een voetbalwedstrijd willen vertalen naar een computerspelletje, dan moeten we een model maken van de wedstrijd. Dit doen we door wat we zien, op te splitsen in kleine entiteiten die makkelijk te beschrijven zijn. Kijken we alleen nog maar naar bovenstaande afbeelding, dan merken we heel wat objecten op: Het voetbalveld. De speler in oranje shirt met nummer 9. De speler met zwarte shirt die de bal verdedigt. De bal. De achtergrond. Hoe gedetailleerd we de werkelijkheid modelleren, hangt af van het probleem. In een eerste versie van het spelletje zal de achtergrond allicht een kleur geweest zijn. Kijken we naar de afbeelding, dan merken we dat het object achtergrond best nog kan opgesplitst worden in deelobjecten: Reclamebord

1.1 Objectgeoriënteerde taal 7 Toeschouwer Vlag Oefening 1.1 Bij de afbeelding van het spelletje FIFA 2014 World Cup hebben we heel wat objecten benoemd. Kan je nog drie andere objecten benoemen? 1.1.2 Klasse Als we goed kijken naar alle objecten uit sectie 1.1.1, dan merken we dat de objecten kunnen ingedeeld worden in categorieën. Spelers van het zwarte of van het oranje team zijn eigenlijk, op de kleur van hun shirt na, allemaal spelers. Vlaggen verschillen in kleur en plaats, maar ze wapperen allemaal als er wind opsteekt of als er een doelpunt gescoord wordt. Alle objecten van een bepaalde soort worden in een objectgeoriënteerde programmeertaal beschreven door een klasse. Een klasse is het tweede belangrijke basisconcept van objectgeoriënteerd programmeren. Concept Klasse. Objecten worden gemaakt uit klassen. De klasse beschrijft de aard van een object; de objecten zelf zijn opzichzelfstaande exemplaren van de klasse. Laat ons dit abstract begrip verduidelijken met onderstaand voorbeeldje. De afbeelding komt uit Microsoft Flight Simulator X. Veronderstel dat we het bedieningspaneel van een vliegtuig moeten programmeren. Eén van de problemen die je dan moet oplossen is het simuleren van alle wijzerplaatjes. Maar wat is nu een wijzerplaat voor dit probleem; is het een klasse of een object? Door jezelf een aantal vragen te stellen kan je dit probleem oplossen. Welke kleur heeft het wijzerplaatje? Welke parameter van de vlucht duidt het wijzerplaatje aan? Welke waarde wijst het wijzerplaatje aan? Je kan deze vragen alleen beantwoorden als je het hebt over één bepaalde wijzerplaat. Het woord wijzerplaat in deze context verwijst naar de klasse ; we spreken dan over wijzerplaatjes in het algemeen en niet over één concrete wijzerplaat. Spreek je over de hoogtemeter, dan kan je wel alle bovenstaande vragen beantwoorden. De wijzerplaat heeft een zwarte achtergrond. De wijzerplaat toont de hoogte van het vliegtuig. De eenheid is foot. Nu hebben we het over een object, een specifiek exemplaar van een wijzerplaat. Oefening 1.2 Bij de afbeelding van het spelletje FIFA 2014 World Cup hebben we heel wat objecten benoemd. Kan je ook verschillende klassen opsommen waartoe deze objecten behoren?

8 Objecten en klassen Oefening 1.3 Kan je een situatie bedenken waar je meer klassen dan objecten kan opsommen? Waarom wel? Waarom niet? 1.1.3 Instantie Als we het over objecten hebben, zullen we vaak spreken van een instantie. Deze twee begrippen zijn bijna synoniemen. Concept Instantie. Objecten noemen we instanties wanneer we willen benadrukken dat ze van een bepaalde klasse zijn. In het voorbeeld bij sectie 1.1.2 zijn de objecten hoogtemeter en snelheidsmeter instanties van de klasse. We zeggen dus correct: Hoogtemeter is een object. Hoogtemeter is een instantie van de klasse. Oefening 1.4 Open je favoriete e-mailclient. Welke objecten zijn een instantie van welke klasse? 1.2 Java in BlueJ In de sectie 1.1 hebben we het verschil proberen uitleggen tussen objecten en klassen zonder ook maar één regel code te programmeren. Maar wat gaan we nu straks leren programmeren: een klasse, een object of beide? Om dit te duiden, openen we een programmeerproject in onze programmeeromgeving BlueJ. BlueJ Project SuperMario. Open vanuit BlueJ het project SuperMario. Je selecteert in de map met bronprojecten van hoofdstuk 1, de map SuperMario. Bij het selecteren van het project zal het icoontje van de map SuperMario niet het gebruikelijke map-icoontje van je bestandsverkenner tonen maar veranderd zijn in het BlueJ-icoontje. Eens je de projectmap geselecteerd hebt, klik je op openen. Hiernaast vind je een afbeelding van de programmeeromgeving BlueJ. Onmiddellijk valt de gele rechthoek met de tekst SuperMario op. Met de rechtermuisknop klikken geeft o.a. de optie new SuperMario(). Klikken we hierop dan geeft een pop-upvenster je de mogelijkheid een naam in te tikken, bv. emiel. Links onderaan in het objectenvenster zien we nu een rood rechthoekje verschijnen met de tekst emiel: SuperMario. Wat hebben we nu eigenlijk gedaan? Om dit te illustreren, bestuderen we het pop-upvenster op pagina 9 waarin je daarnet de naam emiel getypt hebt. Bovenaan

1.2 Java in BlueJ 9 lezen we dat er een instantie aangemaakt wordt van de klasse BlueJ-naam gekregen: emiel. Bemerk dat we van de klasse heel veel instanties kunnen maken. In ons voorbeeld werden wel drie instanties van de klasse gemaakt. Het zijn drie -objecten met BlueJnamen emiel, marie en saar. Ze verschijnen allemaal links onderaan in een rode rechthoek. Klikken we nu met de rechtermuisknop op één van deze objecten, dan zie je dat je een aantal zaken kan bekijken en veranderen. Je kan de naar rechts verplaatsen en je kan springen.. Dit object heeft een -wezens naar links en 1.2.1 Toestand van een object Gaan we verder met het voorbeeld uit sectie 1.2, dan kunnen we via de menu-optie Inspecteer de plaats op het scherm van het -wezen bekijken. Wanneer je het object inspecteert, dan bekijk je de toestand van het object. Concept Toestand. Objecten hebben een toestand. De toestand wordt aangeduid door de waarden die het object bijhoudt. Je moet nu ongetwijfeld het gevoel hebben dat deze drie objecten leven. Jammer genoeg niet zoals op een Nintendo, maar we zijn voorlopig nog geen professionals. Oefening 1.5 Maak een object aan met BlueJ-naam mario. Bestudeer de toestand van object mario. Welke waarden houdt het object bij? Laat het object tweemaal naar rechts bewegen, vervolgens éénmaal springen en ten slotte éénmaal naar links bewegen. Bestudeer de nieuwe toestand van het object. Doet het object wat je verwacht? Samenvattend, hoe zie je nu in de programmeeromgeving BlueJ een klasse, object, instantie en toestand? Een gele rechthoek stelt een klasse voor. Een rode rechthoek stelt een object voor. Je leest af van welke klasse dit object een instantie is. Objecten krijgen van BlueJ een naam. De toestand van een object inspecteren is nagaan hoe het zit met de informatie die door het object wordt bijgehouden.

10 Objecten en klassen Waar zit nu de programmeercode die voor al dit leven zorgt? Wel, dubbelklik op de gele rechthoek. Je ziet nu de Java-code verschijnen van al deze objecten. We hebben ze afgedrukt, misschien niet in dezelfde kleur of hetzelfde lettertype maar wel ook erg gestructureerd. Als we later gaan programmeren is het dus erg belangrijk dat je inziet dat je een klasse zal programmeren. Je programmeert nooit een object. Dat bespaart je enorm veel werk! 1 public class SuperMario 2 { 3 // coordinaten van SuperMario op het scherm 4 private int x; 5 private int y; 6 7 / * * 8 * Maakt een instantie aan van de Klasse SuperMario 9 * / 10 public SuperMario () 11 { 12 13 x = 0; 14 y = 0; 15 } 16 17 / * * 18 * links () verplaatst SuperMario een plaats naar links. 19 * / 20 public void links () 21 { 22 x ; 23 } 24 25 / * * 26 * rechts () verplaatst SuperMario een plaats naar rechts. 27 * / 28 public void rechts () 29 { 30 x++; 31 } 32 33 / * * 34 * spring () verplaatst SuperMario twee plaatsen omhoog. 35 * / 36 public void spring () 37 { 38 y += 2; 39 } 40 } Wanneer je via het bestandssysteem van je computer naar de projectmap van het project SuperMario navigeert, vind je twee belangrijke bestanden. Java-bestand: als je dit bestand opent in een editor, vind je de Java-code hierboven terug. Class-bestand: hierin staat de code die de computer kan uitvoeren. Het is een onleesbaar bestand dat wordt aangemaakt door op de knop Compileren te klikken. Wanneer je code wijzigt, moet je steeds compileren zodat de computer de meest recente versie van je programma kan uitvoeren.

1.3 Klassendefinitie 11 1.3 Klassendefinitie BlueJ Project Geldautomaat. Open het project Geldautomaat en bestudeer wat je allemaal kan met een instantie van de klasse. Hiervoor hoef je de code helemaal niet te bestuderen! De klasse is een heel eenvoudige klasse. Je merkt het als je in BlueJ speelt met een instantie van deze klasse. Toch bevat deze klasse alle elementen die we in het volgende hoofdstuk zullen bestuderen om zelf een echte klasse te kunnen schrijven. Er is iets dat ervoor zorgt dat we van een klasse een instantie kunnen maken. Via de optie Inspecteer in het menu van het object (rechtermuisklik op het object), zien we dat een object een waarde bijhoudt. Hier is de waarde het bedrag dat reeds in de automaat geworpen werd. In hetzelfde menu vinden we commando s (later zulen we dit methodes noemen) om iets te veranderen aan de toestand van het object of om iets op te vragen van het object: We kunnen het bedrag in de geldautomaat vermeerderen met behulp van:. We kunnen het geld uit de geldautomaat halen met behulp van:. We kunnen kijken hoeveel geld in de geldautomaat zit met behulp van:. Sluit nu het project Geldautomaat. Wanneer je de editor sluit, worden alle wijzigingen aan de Java-code automatisch bewaard. Wanneer je de volgende keer het project opent, zal de rechthoek waarin de naam van de klasse staat, gearceerd zijn. Dit betekent dat je eerst nog moet compileren alvorens je een object kan aanmaken. Oefening 1.6 Stel dat men jou vraagt een voetbalspeler uit FIFA 2014 World Cup te programmeren en je op het idee komt de klasse te programmeren. Welke waarden moet de voetbalspeler kunnen bijhouden? Welke informatie moet je kunnen vragen aan een voetbalspeler? Wat moet de voetbalspeler allemaal kunnen doen? In hoofdstuk 2 gaan we stap voor stap alle elementen die een klasse definiëren, bestuderen en leren programmeren zodat we zelf in staat zijn een klassendefinitie te programmeren zoals de klasse op pagina 10. Concept Klassendefinitie. In een klassendefinitie zullen we haarfijn definiëren hoe alle instanties van een klasse zich moeten gedragen: individueel of ten opzichte van instanties van dezelfde klasse of een andere klasse.

12 Objecten en klassen 1.4 Herhalingsoefeningen Oefening 1.7 Een zaak gespecialiseerd in consultancy voor de IT-sector, verkocht gespecialiseerde ondersteuning. Hieronder het detail van de factuur: Aangezien een factuur uit de printer van een computer rolt, kunnen we de factuur modelleren. Welke objecten vind je terug op de afbeelding? Van welke klassen zouden deze objecten instanties zijn? Wat houdt de toestand van elk van deze objecten bij? Oefening 1.8 Stel dat je de klasse moet programmeren. Welke waarden moet een e-mail kunnen bijhouden? Welke informatie moet je allemaal opgeven aan een e-mail? Welke informatie moet je kunnen opvragen van een e-mail? Wat moet de e-mail allemaal kunnen doen? Oefening 1.9 Open het project SuperMario. Dit project vind je in de map oefeningen bij hoofdstuk 1. Maak een object aan van deze klasse en bestudeer de werking en toestand van het object. Wanneer wordt een object groot en klein? Kan SuperMario door de grond zakken? Of schuin omhoog springen?