Maak een nieuw project aan met naam
GebruikVanArrays. Voeg een nieuwe java-klasse
Getallen toe (zonder hoofdprogramma).
In deze oefening wordt gevraagd de klasse
Getallen te implementeren. Gebruik het hoofdprogramma (zie bestand
GebruikVanArrays.java)
om te controleren of elke methode/constructor correct werkt.
De klasse Getallen
- Declareer een instantievariabele die een array van gehele getallen kan bevatten.
- Voeg een constructor toe die de array initialiseert met willekeurige positieve gehele getallen. De constructor heeft twee parameters: de eerste parameter is het aantal elementen in de array.
De tweede parameter is het grootste getal dat in de array mag voorkomen. Je genereert dus willekeurige gehele getallen in het interval $$[ 0 , \mbox{grootsteGetal} ]$$.
Test in het hoofdprogramma of de constructor kan worden aangeroepen. Geef zelf een waarde aan de twee parameters (maakt niet echt uit wat je meegeeft als je maar iets meegeeft van het juiste type).
- Overschrijf de methode toString die alle getallen van de array aan elkaar plakt als string (met een spatie ertussen),
en deze string teruggeeft. Gebruik een gewone for-lus (met index).
Merk op: in de klasse Getallen wordt er niets uitgeschreven in het output-venster!
Vul het hoofdprogramma aan om deze methode te testen.
- Voeg een default-constuctor toe. Deze initialiseert de array met 10 getallen in het interval $$[0,20]$$. Gebruik this om de vorige constructor aan te roepen.
Test dit uit in het hoofdprogramma.
- Schrijf een methode tel die telt hoeveel keer het getal, dat als parameter is opgegeven, voorkomt in de array. Deze methode geeft het aantal terug,
en schrijft dus zelf niets uit. Gebruik nu een for each-lus.
Om deze methode te testen vraag je in het hoofdprogramma aan de gebruiker welk getal er moet 'geteld' worden.
Je schrijft uiteraard het aantal naar het scherm vanuit het hoofdprogramma.
-
Voeg in de klasse Getallen een derde constructor toe die een bestandsnaam meekrijgt als parameter.
Dit bestand zal gehele getallen bevatten. Deze moeten allemaal opgeslagen worden in de instantievariabele.
In de constructor initialiseer je een Scanner gekoppeld aan dit bestand.
Je mag veronderstellen dat het bestand enkel gehele getallen bevat. Zorg dat alle getallen correct worden opgeslagen in de instantievariabele.
Merk op: deze constructor moet de "fout" doorwerpen - gebruik Alt-Enter in NetBeans.
Let op: je weet niet op voorhand hoeveel getallen het bestand bevat.
Daarom lees je het bestand een eerste keer in, terwijl je enkel telt hoeveel getallen er zijn. Dan pas kan je net genoeg plaats voorzien voor de getallen die je bij de tweede beurt inleest.
(Dit is niet zo efficiƫnt, maar voorlopig kan het niet anders. Volgend jaar zien we alternatieven die dit dubbel inlezen van het bestand overbodig maken.)
Controleer of dit correct werkt met het bestand getallen.txt dan je kan terugvinden in getallen.txt.
In het hoofdprogramma tel je hoeveel keer het getal $$4$$ voorkomt (dit resulteert in $$2$$ keer). Toon ter controle ook alle getallen op het scherm.
Daarna dien je (enkel) de code van de klasse
Getallen in.