Zelftest Programmeren in Java



Vergelijkbare documenten
IMP Uitwerking week 13

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

Ingebouwde klassen & methodes

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

Overerving & Polymorfisme

Zelftest Inleiding Programmeren

Kleine cursus PHP5. Auteur: Raymond Moesker

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

VI. Klassen en objecten

Tentamen Imperatief Programmeren

Modelleren en Programmeren

Modelleren en Programmeren

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Programmeren in Java les 3

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

Java. Basissyllabus. Egon Pas

Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing.

Abstracte klassen & Interfaces

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Modelleren en Programmeren

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Modelleren en Programmeren

NAAM: Programmeren 1 Examen 21/01/2011

Noties Informatica. In java fungeren objecten als een model voor de elementen waarin een probleem kan worden opgesplitst

Zelftest Java concepten

Modelleren en Programmeren

Een stoomcursus door Edgar de Graaf, november 2006

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing

OBJECT SPAGHETTI : PATTERNS BIEDEN UITKOMST? Wat is het probleem nou eigenlijk? public class CoffeeDrinker { private CoffeeProducer mycoffeeproducer;

Versie 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

Objectgeoriënteerd programmeren in Java 1

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

TENTAMEN Programmeren 1 VOORBEELDUITWERKING

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, uur

Zelftest Programmeren in COBOL - deel I

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

Ontwerp van Informatiesystemen

Programmeren 1 23 januari 2013 Prof. T. Schrijvers

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur

Zelftest Programmeren in PL/I

NAAM: Programmeren 1 Examen 29/08/2012

Deel 1 : Gesloten Boek

Objectgericht programmeren 1.

Vakgroep CW KAHO Sint-Lieven

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

Design patterns Startbijeenkomst

Java spiekbrief. Commentaar. Definitie van een methode. Types. Variabelendeclaratie. Definitie van een klasse. Namen. Definitie van een veld

Modelleren en Programmeren

Modelleren en Programmeren

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Programmeren in Java 3

Java spiekbrief. Commentaar. Definitie van een methode. Types. Variabelendeclaratie. Definitie van een klasse. Namen. Definitie van een veld

Modulewijzer Tirdat01

Hoofdstuk 0. Van Python tot Java.

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

Scala. Korte introductie. Sylvia Stuurman


eerste voorbeelden in Java

Datastructuren: stapels, rijen en binaire bomen

TENTAMEN Programmeren 1

Lessen Java: Reeks pag. 1

Wat is een grafische gebruikersinterface (GUI)?

HOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10

Een gelinkte lijst in C#

Programmeren in Java 3

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

Programmeren (1) Examen NAAM:

Programmeren in C# Interfaces. Hoofdstuk 23

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

Programmeren in Java 3

Modelleren en Programmeren

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 11 november 2016, uur

Uitwerking Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, uur

Imperatief Programmeren, derde deeltentamen (INFOIMP) 4 november 2005

1 Ontwerppatronen. 1.1 Het Command patroon

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010

Inleiding C++ Coding Conventions

Labo 1 Programmeren II

INFITT01 Internettechnologie WEEK 2

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, uur

Programmeren in C# Overerving

public Bier ( string N, double P, Brouwerij B) { Naam = N; AlcoholPerc = P; Brouwer = B;

Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers

Transcriptie:

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 bestaat uit meerkeuze-vragen. Bij de sommige vragen kunnen meerdere antwoorden correct zijn. Duid uw antwoord(en) aan en vergelijk met de gegeven oplossingen. In de test worden 20 vragen gesteld. Let op: als er voor een meerkeuzevraag meerdere juiste antwoordmogelijkheden zijn, is dit expliciet aangegeven. Een gestelde vraag is pas correct beantwoord wanneer alle correcte antwoorden gegeven zijn. Er zitten niet echt strikvragen bij (toch niet bewust), maar lees vraag en antwoord toch aandachtig. Reken ongeveer 30 minuten voor het invullen. De juiste antwoorden en richtlijnen voor de evaluatie vindt u achteraan dit document. 22/01/2013 Zelftest Programmeren in Java 2

VRAGEN ZELFTEST PROGRAMMEREN IN JAVA 1. Welk van de volgende statements in verband met arrays is syntactisch verkeerd? O (a) Person[] p = new Person[5]; Dit is een goede initialisatie. O (b) Person p[5]; Dit is een C++ constructie die niet werkt in Java O (c) Person[] p []; Dit is een goede declaratie. O (d) Person p[][] = new Person[2][]; Dit is een goede declaratie. 2. Gegeven het volgende stukje code: public class Test { public static void main(string args[]) { int i = 0, j = 5 ; for( ; (i < 3) && (j++ < 10) ; i++ ) { System.out.print(" " + i + " " + j ); System.out.print(" " + i + " " + j ); wat is het resultaat? O (a) 0 6 1 7 2 8 3 8 O (b) 0 6 1 7 2 8 3 9 O (c) 0 5 1 5 2 5 3 5 O (d) de compilatie loopt verkeerd 3. Welk van de volgende declaraties is juist? (2 antwoorden) boolean b = TRUE; TRUE is geen keyword, true wel byte b = 255; Je kan geen integer waarde toekennen aan een byte String s = null ; Dit initialiseert en String met waarde null, en is dus een juiste declaratie int i = new Integer( 56 ); Je kan in JDK 5.0 een Integer object toekennen aan een primitief datatype int, omwille van autoboxing 4. Stel een klasse heeft als visibiliteit public. In deze klasse definiëren we een methode die protected is. Welk van de volgende uitspraken is dan juist? O (a) Deze methode is enkel en alleen bereikbaar binnen de klasse zelf en binnen alle subklassen. Niet juist, ze is ook bereikbaar binnen alle klassen in hetzelfde package. O (b) Je mag in een klasse geen methodes met een lagere zichtbaarheid declareren dan de 22/01/2013 Zelftest Programmeren in Java 3

Dat mag wel. zichtbaarheid van de klasse zelf. O (c) Vanuit protected methodes heeft men geen toegang tot public methodes. Vanuit protected methodes heeft men wel toegang tot public methodes. O (d) Deze methode is bereikbaar binnen de klasse zelf en vanuit alle klassen die in hetzelfde package gedefinieerd staan als deze klasse. 5. Gegeven het volgende stukje code public class Company{ public abstract double calculatesalaries(); welk van de volgende uitspraken is dan juist? O (a) De keyworden public en abstract mogen niet samen gebruikt worden. O (b) De methode calculatesalaries() in de klasse Company moet een body hebben. O (c) Er moet een return statement in de methode calculatesalaries() worden geplaatst. O (d) De klasse Company moet abstract gedefinieerd worden. Omdat de klasse Company abstract moet gedefinieerd worden aangezien ze en abstracte methode bevat. 6. Gegeven het volgende stukje code public interface Guard{ void doyourjob(); abstract public class Dog implements Guard{ welk van de volgende uitspraken is dan juist? O (a) Deze code zal niet compileren, omdat de methode doyourjob() in de interface Guard abstract moet gedefinieerd worden. methodes is interfaces zijn sowieso public abstract O (b) Deze code zal niet compileren, omdat de klasse Dog de methode doyourjob() uit de interface Guard moet implementeren. niet juist, want Dog is een abstracte klasse O (c) Deze code zal niet compileren, omdat we in de declaratie van de klasse Dog het keyword extends moeten gebruiken i.p.v. implements. neen, implements is juist. O (d) Deze code zal zonder problemen compileren. 7. Gegeven deze klassen: public class Person{ public void talk(){ System.out.print("I am a Person "); public class Student extends Person { public void talk(){ System.out.print("I am a Student "); Wat is dan het resultaat van volgend stukje code: public class Test{ public static void main(string args[]){ Person p = new Student(); p.talk(); 22/01/2013 Zelftest Programmeren in Java 4

O (a) I am a Person neen, een object kijkt altijd eerst in zijn eigen klasse voor een implementatie van een method call. O (b) I am a Student O (c) I am a Person I am a Student neen, slechts één methode wordt uitgevoerd. O (d) I am a Student I am a Person neen, slechts één methode wordt uitgevoerd. 8. Gegeven het volgende stukje code: public class Person{ private String firstname; public Person(String fn){ firstname = fn; public class Student extends Person{ private String studentnumber; public Student(String number) { studentnumber = number; Welk van de volgende uitspraken is dan juist? (2 antwoorden) Deze code zal compileren als we in de klasse Person een no-argument constructor definiëren. Deze code zal compileren als we in de klasse Student een no-argument constructor definiëren. Deze code zal compileren als we in de constructor van Student de volgende lijn code als eerste statement schrijven: super(); Deze code zal compileren als we in de constructor van Student de constructor van Person aanroepen. 9. Geef de correcte kenmerken van een enumeration type (2 antwoorden) enum kan statische velden en methodes definiëren enum kan een publieke constructor bevatten enum kan interfaces implementeren enum is een referentie naar een variabele set van constanten 10. Gegeven volgend stukje code: class Person { public int number; public class Test{ public void doit(int i, Person p){ i = 5; p.number = 8; public static void main(string args[]){ 22/01/2013 Zelftest Programmeren in Java 5

int x = 0; Person p = new Person(); new Test().doIt(x, p); System.out.println(x + " " + p.number); Wat is dan de uitkomst? O (a) 0 8 O (b) 5 0 O (c) 0 0 O (d) 5 8 11. Gegeven het volgende stukje code: class SalaryCalculationException extends Exception{ class Person{ public void calculatesalary() throws SalaryCalculationException { //... throw new SalaryCalculationException(); //... class Company{ public void paysalaries(){ new Person().calculateSalary(); Welk van de volgende uitspraken is juist (2 antwoorden): Deze code zal zonder problemen compileren. neen, in paysalaries() moet de SalaryCalculationException ofwel gedeclareerd ofwel opgevangen worden. Deze code zal compileren indien we in paysalaries() als returnwaarde een boolean terug geven in plaats van void. Deze code zal compileren indien we in paysalaries() een try-catch-block toevoegen. Deze code zal compileren indien we in de signatuur van de paysalaries() methode throws SalaryCalculationException toevoegen. 12. Welke uitspraken in verband met static methoden zijn correct? (2 antwoorden) static methoden zijn moeilijk onderhoudbaar, omdat hun implementatie niet veranderd mag worden. static methoden mogen worden aangeroepen via een object-referentie naar een object van de klasse waarin die methode gedefinieerd staat. static methoden zijn altijd public, omdat ze op klasse-niveau gedefinieerd zijn. static methoden hebben geen rechtstreekse toegang tot methoden die niet static zijn, en die binnen dezelfde klasse gedefinieerd staan. 22/01/2013 Zelftest Programmeren in Java 6

13. Gegeven volgend stukje code: class Person{ public void talk(){ public class Test{ public static void main(string args[]){ Person p = null; try{ p.talk(); catch(nullpointerexception e){ System.out.print("There is a NullPointerException. "); catch(exception e){ System.out.print("There is an Exception. "); System.out.print("Everything went fine. "); Welk van volgende uitspraken is dan juist. O (a) Als je dit programma runt is de uitkomst: There is a NullPointerException. Everything went fine. O (b) Als je dit programma runt is de uitkomst: There is a NullPointerException. fout, ook de code na het catch-blok wordt uitgevoerd. O (c) Als je dit programma runt is de uitkomst: There is a NullPointerException. There is an Exception. O (d) Deze code zal niet compileren, want Java kent geen pointers. java kent geen pointers, maar er is wel een klasse NullPointerException. 14. Welke uitspraken i.v.m. het gebruik van Generics zijn correct? (2 antwoorden) Generics zijn getypeerde subklassen van de klassen uit het Collections framework Generics worden gebruikt om collecties te parametriseren zodat bij compilatie een type checking mogelijk is van de objecten in de collectie. Generics kunnen gebruikt worden om type checking te doen van de objecten in de collectie bij uitvoering Generics laten toe om op een gemakkelijkere manier over een volledige collectie te itereren via de enhanced for lus. 15. Welke collectie klasse associeert values met keys, en rangschikt de keys volgens hun natuurlijke orde? O (a) java.util.hashset O (b) java.util.linkedlist O (c) java.util.treemap O (d) java.util.sortedset 22/01/2013 Zelftest Programmeren in Java 7

16. Welke uitspraak in verband met GUI componenten is fout? O (a) Swing bestaat sinds versie 1.2 van de jdk. O (b) AWT staat voor Abstract Window Toolkit O (c) Je mag AWT componenten op Swing containers plaatsen. O (d) De AWT klassen zijn deprecated. 17. Welk van de volgende uitspraken i.v.m. events zijn juist? (2 antwoorden) Event objecten worden op een queue geplaatst, waar ze door subscribers (objecten van klassen die de interface Subscriber implementeren) worden afgehaald. Een listener van een event moet steeds de methode public void listen(eventobject obj) implementeren. Elk event object moet een object zijn van een subklasse van EventObject. Elke event listener kan te weten komen wat de bron is van het event, door de methode getsource() aan te roepen op het event object. 18. Hoe kan men een object serialiseren? O (a) Men moet de klasse van het object de interface Serializable laten implementeren. O (b) Men moet de methode serializeobject() (die wordt overgeërfd uit de klasse Object) aanroepen op het object. Neen, deze methode bestaat niet. O (c) Men moet van de klasse Serializer de statische methode serialize(object obj) aanroepen, met als argument het object dat men wil serializeren. Neen, deze klasse bestaat niet. O (d) Men moet helemaal niets doen, want alle objecten zijn by default serializeerbaar. 19. Welke uitspraken in verband met IO zijn juist (2 antwoorden)? OutputStream is de abstracte superklasse van alle klassen die een outputstream van bytes representeren. Subklassen van de klasse Reader worden gebruikt om character streams te lezen. Om characters naar een outputstream te schrijven, moet je gebruik maken van de klasse CharacterOutputStream. Om een object naar een file te schrijven, maak je gebruik van de klasse ObjectFileWriter 20. Gegeven het volgende stukje code: public class MyThread extends Thread{ public String text; public void run(){ System.out.print(text); public class Test{ 22/01/2013 Zelftest Programmeren in Java 8

public static void main(string args[]){ MyThread t1 = new MyThread(); t1.text = "one "; MyThread t2 = new MyThread(); t2.text = "two "; t1.start(); t2.start(); System.out.print("three "); Welke van de volgende uitspraken is dan waar: O (a) Als men dit programma uitvoert, krijgt men altijd als uitkomst one two three O (b) Als men dit programma uitvoert, krijgt men altijd als uitkomst three one two O (c) De uitkomst van dit programma is onbepaald. O (d) Het compileren van dit programma zal mislukken. 22/01/2013 Zelftest Programmeren in Java 9

EVALUATIE. Hier zijn de correcte antwoorden op alle vragen: 1. b 2. a 3. c d 4. d 5. d 6. d 7. b 8. a d 9. a c 10. a 11. c d 12. b d 13. a 14. b d 15. c 16. d 17. c d 18. a 19. a b 20. c Geef 1 punt per juist antwoord. Voor vragen met meerdere juiste antwoorden moeten alle antwoorden juist zijn voor er 1 punt wordt toegekend. Halve punten worden niet toegekend. Indien uw score meer is dan 80%, dan hoeft u de cursus Programmeren in Java niet te volgen. Indien uw score tussen 50% en 80% ligt, kan het volgen van de cursus Programmeren in Java uw kennis vervolledigen. Is uw score minder dan 50%, dan is de cursus Programmeren in Java een echte aanrader. 22/01/2013 Zelftest Programmeren in Java 10