OPLEIDING TECHNISCHE INFORMATICA HOGESCHOOL ROTTERDAM /RIVIO HOGESCHOOL ROTTERDAM/RIVIO MODULEWIJZER TIRPRO02 Programmeren 2 (Classes en Objects) Aantal studiepunten 2 cp Module-eigenaar TI Modulebeheer B. Eleveld Versie 1.0 21-12-2005 MODULEWIJZER TIRPRO021 23-7-2017 1 OPLEIDING TECHNISCHE INFORMATICA HOGESCHOOL ROTTERDAM /RIVIO A4 modulebeschrijving modulecode modulenaam aantal creditpoints relatie met andere modulen vereiste voorkennis programmasoort werkvormen tijdvak toetsing vrijstelling leermiddelen te verwerven competenties en leerdoelen opmerkingen doel van deze module auteur modulewijzer versiedatum modulewijzer beheerder module MODULEWIJZER TIRPRO021 TIRPRO02 Programmeren 2 (classes en objects) 2 TIRPRO01 Kennisgestuurd theorie en practicum begeleid, zelfwerkzaamheid thuis jaar 1, semester 1, blok 2, week 1 - 7 praktijktoets achter pc of terminal mogelijk, afhankelijk van vooropleiding Y. Daniel Liang, Introduction to JAVA PROGRAMMING 5th edition ISBN: 0131857215 Java SDK vanaf versie 1.4 editor naar keuze analyse, ontwerpen, realiseren, Doel van deze module is het ontwikkelen van kennis over, begrip van en vaardigheid in het gebruiken van classes en objecten zoals dat binnen de programmeertaal java is geïmplementeerd. Na met succes voltooien van deze module is de student in staat tot: het ontwerpen van specifieke javaclasses waarin gedrag (methods) en eigenschappen (variabelen) worden vastgelegd. het instantiëren van een object behorende bij het hierboven bedoelde classe-concept. deze instantiëring te realiseren in een uitvoerbaar javaprogramma. Bob Eleveld 21 december 2005 Bob Eleveld 23-7-2017 2 OPLEIDING TECHNISCHE INFORMATICA HOGESCHOOL ROTTERDAM /RIVIO Inhoudsopgave 1. ALGEMENE OMSCHRIJVING .................................................................................................................... 4 1.1 1.2 1.3 1.4 1.5 1.6 1.7 INLEIDING .............................................................................................................................................. 4 INHOUD ................................................................................................................................................. 4 RELATIE MET ANDERE ONDERWIJSEENHEDEN .......................................................................................... 4 LEERDOELEN EN COMPETENTIES ............................................................................................................ 5 W ERKVORM(EN) .................................................................................................................................... 5 TOETSING ............................................................................................................................................. 5 LITERATUUR EN ICT-BRONNEN ............................................................................................................... 5 2. PROGRAMMA ................................................................................................................................................. 6 2.1 KWARTAALSCHEMA ................................................................................................................................ 6 WEEK 1: ............................................................................................................................................................. 6 H 5 Arrays .................................................................................................................................................... 6 H 5.1 Arrays: Introduction ............................................................................................................................ 6 H 5.2 Arrays: Basics .................................................................................................................................... 6 WEEK 2: ............................................................................................................................................................. 6 H 5.3 Arrays: Copy ....................................................................................................................................... 6 H 5.4 Arrays: Passing to methods ............................................................................................................... 6 H 5.5 Arrays: Returning from methods ........................................................................................................ 6 H 5.7 Arrays: Search .................................................................................................................................... 6 WEEK 3: ............................................................................................................................................................. 6 H 5.8 Arrays: Multidimensional .................................................................................................................... 6 WEEK 3: ............................................................................................................................................................. 7 H 6 Objects and Classes ............................................................................................................................. 7 H 6.1 Objects and Classes: Introduction ..................................................................................................... 7 H 6.2 Objects and Classes: Defining ........................................................................................................... 7 H 6.3 Objects and Classes: Constructors .................................................................................................... 7 WEEK 4: ............................................................................................................................................................. 7 H 6.4 Objects and Classes: Accessing ........................................................................................................ 7 H 6.5 Objects and Classes: Java Library ..................................................................................................... 7 H 6.6 Objects and Classes: Modifiers .......................................................................................................... 7 WEEK 5: ............................................................................................................................................................. 7 H 6.7 Objects and Classes: Encapsulation .................................................................................................. 7 H 6.10 Objects and Classes: Static ............................................................................................................. 7 H 6.14 Objects and Classes: Abstraction and Encapsulation ..................................................................... 7 WEEK 6: ............................................................................................................................................................. 7 H 8 Inheritance ............................................................................................................................................. 7 H 8.1 Inheritance: Introduction ..................................................................................................................... 8 H 8.2 Inheritance: Superclass and Subclass ............................................................................................... 8 H 8.3 Inheritance: Keyword Super ............................................................................................................... 8 H 8.4 Inheritance: Overriding ....................................................................................................................... 8 H 8.5 Inheritance: Object Class ................................................................................................................... 8 WEEK 7: ............................................................................................................................................................. 8 H 9 Abstract Classes and Interfaces ........................................................................................................... 8 H 9.1 Abstract Classes: Introduction............................................................................................................ 8 H 9.2 Abstract Classes ................................................................................................................................ 8 WEEK 8: ............................................................................................................................................................. 8 3 TOETSING EN BEOORDELING ...................................................................................................................... 8 3.1 PROCEDURE ................................................................................................................................................. 8 3.2 PROEFTENTAMEN ......................................................................................................................................... 8 MODULEWIJZER TIRPRO021 23-7-2017 3 OPLEIDING TECHNISCHE INFORMATICA 1. Algemene omschrijving 1.1 Inleiding HOGESCHOOL ROTTERDAM /RIVIO Het RIVIO heeft als uitgangspunt dat ten behoeve van het programmeeronderwijs gebruik wordt gemaakt van slechts één programmeertaal. Gekozen is voor het platformonafhankelijke Java. Verder leent Java zich ook uitstekend voor het ontwikkelen van webapplicaties. Op www.javasoft.com vind je een gangbare versie van deze taal. Vanaf versie 1.4. Versie 1.5 kent t.o.v. de vorige versie een aantal nieuwe features. Zorg wel dat je een ontwikkelomgeving download (SDK = System Developing Kit) en niet alleen de uitvoeromgeving (JRE = Java Runtime Environment). Voor beginners is de ontwikkeltool EditPlus een aanrader. (www.editplus.com), maar je bent vrij in je keuze. Netbeans en Eclips zijn geavanceerder, maar je zult dan enige tijd moeten investeren om deze tools te leren kennen en gebruiken. Van genoemde editors zijn gratis - (freeware en shareware) of evaluatieversies te donloaden. Algemeen: De structuur van het boek is als volgt opgebouwd: theorie met voorbeelden van analyse van een nieuw probleem en implementatie van het oplossend programma. soms optionele paragrafen key terms (sleutelbegrippen) samenvatting hoofdstuk oefenopgave waarvan de oplossing op het web te vinden is. (review questions) programmeeropdrachten ter oefening. (programming exercises) Tips: 1.2 Als Java of programmeren nieuw voor je is, tik dan een voorbeeldprogramma uit het boek eens geheel over. Nog meer effect sorteer je, wanneer je de (engelse) namen van variabelen e.d. vervangt door zelfgekozen nederlandse namen. Maak per hoofdstuk ter afronding minstens één of twee opdrachten uit de programming exercises. Inhoud Na afloop van de module moet een programma gemaakt kunnen worden, waarin alleen statements en methodes worden gebruikt. Aan de hand van een opdrachtsomschrijving wordt een analyse van het probleem gemaakt in eigen bewoordingen (of pseusocode) en vervolgens wordt deze code in java omgezet. Het java programma moet worden gecompileerd en moet daarna goed kunnen worden uitgevoerd (gerund). 1.3 Relatie met andere onderwijseenheden De module is benodigd voor tirprj03 en 4 MODULEWIJZER TIRPRO021 23-7-2017 4 OPLEIDING TECHNISCHE INFORMATICA 1.4 HOGESCHOOL ROTTERDAM /RIVIO Leerdoelen en competenties Doel van deze module is kennis en ervaring op te doen in het programmeren met een programmeer-taal. Als programmeertaal wordt gebruik gemaakt van JAVA. Na afloop van de module moet een programma gemaakt kunnen worden, waarin alleen statements en methodes worden gebruikt. Aan de hand van een opdrachtsomschrijving wordt een analyse van het probleem gemaakt in eigen bewoordingen (of pseusocode) en vervolgens wordt deze code in java omgezet. Het java programma moet worden gecompileerd en moet daarna goed kunnen worden uitgevoerd (gerund). 1.5 Werkvorm(en) 7 weken 1uur hoorcollege en 3 uur practicum. 1.6 Toetsing Zie hoofdstuk 3. 1.7 Literatuur en ICT-bronnen Introduction to Java programming Comprehensive version Y. Daniel Liang Pearson Prentice Hall ISBN: 0-13-185721-5 Java collection tutorial: http://java.sun.com/docs/books/tutorial/collections/index.html MODULEWIJZER TIRPRO021 23-7-2017 5 OPLEIDING TECHNISCHE INFORMATICA HOGESCHOOL ROTTERDAM /RIVIO 2. Programma 2.1 Kwartaalschema week 1: H 5 Arrays H 5.1 Arrays: Introduction Lees dit korte hoofdstukje, waardoor u vooraf een idee krijgt over het nut van arrays. H 5.2 Arrays: Basics - Een array declareren. - Een array creëren. - Een array initialiseren. U dient de verschillende manieren om een array te initialiseren te kunnen herkennen en toepassen. doen: Example 5.1 overnemen waarbij u zoveel mogelijk de engelse namen vervangt door nederlandse. week 2: H 5.3 Arrays: Copy leren: Twee manieren om arrays te kopieren. H 5.4 Arrays: Passing to methods doen: Programming Exercises 5.1 – 5.2 H 5.5 Arrays: Returning from methods doen: Example 5.4 (pagina 188) overnemen, waarbij u variabelen en methodes voorziet van nederlandse namen. doen: voor de liefhebber (die u vanzelfsprekend allemaal bent) : Programming Exercises 5.6 H 5.7 Arrays: Search lezen: doorgrond de afgedrukte listings van linear search (5.7.1) en binary search (5.7.2). doen: Programming Exercises 5.9 – 5.10 week 3: H 5.8 Arrays: Multidimensional doen: Example 5.5 overnemen doen: Programming Exercises 5.18 MODULEWIJZER TIRPRO021 23-7-2017 6 OPLEIDING TECHNISCHE INFORMATICA HOGESCHOOL ROTTERDAM /RIVIO week 3: H 6 Objects and Classes Tijdens de colleges wordt de leerstof van dit hoofdstuk door de docent aangevuld met een geheel uitgewerkt voorbeeld. H 6.1 Objects and Classes: Introduction lezen H 6.2 Objects and Classes: Defining doen: neem de listing van figuur 6.2 over en compileer. (gebruik nederlandse namen !) H 6.3 Objects and Classes: Constructors leren: het begrip constructor. doen: werpt u een blik in appendix E. (UML) doen: Programming Exercises 6-1 week 4: H 6.4 Objects and Classes: Accessing doen: Example 6.1, neem listing over. leren: 6.4.3 en 6.4.4 het verschil tussen primitieve typen en referentiële typen. H 6.5 Objects and Classes: Java Library doen: neem listing 6.2 (pagina 222) over, compileer, run en geniet ! H 6.6 Objects and Classes: Modifiers lezen: (de modifier private dient u in het vervolg zoveel als mogelijk toe te passen in specifieke classes.) week 5: H 6.7 Objects and Classes: Encapsulation doen: neem listing 6.3 over leren: de begrippen getters en setters. doen: Programming Exercises 6-11 H 6.10 Objects and Classes: Static doen: neem listing 6.5 (pagina 230) en listing 6.6 (pagina 232) over. H 6.14 Objects and Classes: Abstraction and Encapsulation lezen: het lezen van deze paragraaf biedt u enig inzicht over de mogelijkheden en voordelen van de hier genoemde werkwijze. week 6: H 8 Inheritance De leerstof in dit hoofdstuk zal eveneens aangevuld worden met voorbeelden en uitwerkingen die MODULEWIJZER TIRPRO021 23-7-2017 7 OPLEIDING TECHNISCHE INFORMATICA HOGESCHOOL ROTTERDAM /RIVIO de docent gefaseerd beschikbaar stelt. H 8.1 Inheritance: Introduction lezen: H 8.2 Inheritance: Superclass and Subclass H 8.3 Inheritance: Keyword Super H 8.4 Inheritance: Overriding H 8.5 Inheritance: Object Class week 7: H 9 Abstract Classes and Interfaces H 9.1 Abstract Classes: Introduction Lezen: H 9.2 Abstract Classes doen: listings 9.1 t/m 9.4 overnemen doen: Example 9.1 overnemen week 8: uitloop proeftentamen tentamen 3 Toetsing en beoordeling 3.1 Procedure Aan het einde van de module wordt een praktijktoets gegeven. Mogelijk worden tijdens de module reeds vrijstellende toetsen en praktijktesten gegeven. In dat geval kunnen deze testen vrijstellend werken voor de praktijktoets. Verdere aanwijzingen Werk vanaf het begin regelmatig ook thuis. Zorg dat u zo snel mogelijk de software tot uw beschikking krijgt. Deze is (gratis) te downloaden vanaf het internet. 3.2 Proeftentamen Nog in te vullen MODULEWIJZER TIRPRO021 23-7-2017 8 OPLEIDING TECHNISCHE INFORMATICA HOGESCHOOL ROTTERDAM /RIVIO Bijlage 1: Configureren EditPlus voor Java. Om EditPlus te kunnen configureren, moet eerst Java zijn geinstalleerd ! Kies in het menu: Tools en dan Configure User Tools, waarna het volgende venster verschijnt. 1. 2. 3. 4. U klikt op Group Name en vult in het dan volgende dialoogboxje JAVA in. Daarna klikt u op Add Tool>> en kiest uit het verschijnende lijstje Program. In het invulvak Menu text: tikt u in: compileren. Klik op de button rechts naast het invulvak Command: en selecteer de bin-directory van Java, kies daar het programma: javac.exe 5. Het invulvak Argument: vult u door op de button ernaast te kiezen voor $(FileName). 6. Het vak Initial directory: laat u oningevuld. 7. Als u Capture output aanvinkt, (doen!) verschijnen alle resultaten in het venster binnen de editor, anders in een DOS-venster. Herhaal bovengenummerde stappen 2 t/m 7 waarbij u bij: stap 3: uitvoeren intikt. stap 4: kiest voor het programma java.exe stap 5: kiest voor $(FileNameNoExt) De overige stappen blijven hetzelfde. Klik op Apply en dan op OK en de instellingen zijn vastgelegd. Om met slechts één muisklik uw programma’s te kunnen compileren en uitvoeren moet u de User Toolbar in Toolbars/Views in het menu View even aanvinken. MODULEWIJZER TIRPRO021 23-7-2017 9