Korte uitleg :
Ik heb een klasse Lid die per object Lid een array aanmaakt om een maximum
van 3 exemplaarnummers op te slaan.
Allereerst het ontwerp van de klasse Lid
de attributen lidNr en naam worden gevuld door een externe klasse, dus die hoeven niet in de constructor als parameters meegegeven te worden
dan de methode om een doorgekregen exemplaarnummer op te slaan in de net
aangeroepen Array :
Wat ik hier tracht te doen is de eerste lege positie in de array te vinden (op het moment dat een element dus nul is), daar stop ik dan het meegekregen exemplaarnummer in.
Echter, ongeacht het exemplaarnummer wat wordt meegegeven krijg ik altijd exemplaarnummer 0 in de array.
Ik vraag mijn array namelijk op door middel van een kopie naar mijn applet :
In de applet waar de kopie wordt opgevraagd lees ik elk element weer uit en plaats die naar een conversie in een tekstvak.
dit doe ik voor elk element, dus [0], [1] en [2]...
Maar in elk veld krijg ik een exemplaarnummer 0...
De vraag is dus hoe dit nu kan ? Ik denk zelf dat het verkeerd gaat bij het kopieren van de originele array elementen naar de array exemplaararray.
Kan iemand aangeven waar ik de fout in ga ?
Ik heb een klasse Lid die per object Lid een array aanmaakt om een maximum
van 3 exemplaarnummers op te slaan.
Allereerst het ontwerp van de klasse Lid
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| public class Lid
{
//Attributen
private int lidNr;
private String naam;
private int[] exemplaarNrs;
private Exemplaar exemplaar;
private int[] exemplaararray;
private int exemplaarnr;
private int aantalUitleningen;
private int aantal = 0;
private int i;
//Constructor
public Lid ()
{
exemplaarNrs = new int[3];
} |
de attributen lidNr en naam worden gevuld door een externe klasse, dus die hoeven niet in de constructor als parameters meegegeven te worden
dan de methode om een doorgekregen exemplaarnummer op te slaan in de net
aangeroepen Array :
code:
1
2
3
4
5
6
| public void zetUitlening(int exemplaarnr)
{
for (i=0; i < 3; i++)
if (exemplaarNrs[i] == 0)
exemplaarNrs[i] = exemplaarnr;
} |
Wat ik hier tracht te doen is de eerste lege positie in de array te vinden (op het moment dat een element dus nul is), daar stop ik dan het meegekregen exemplaarnummer in.
Echter, ongeacht het exemplaarnummer wat wordt meegegeven krijg ik altijd exemplaarnummer 0 in de array.
Ik vraag mijn array namelijk op door middel van een kopie naar mijn applet :
code:
1
2
3
4
5
6
7
8
9
10
| public int [] geefExemplaarnrs()
{
// Maakt eerst een nieuwe array aan, daarna kloont hij deze en stelt hem
// beschikbaar via de return
int[] exemplaararray = new int[3];
for (i = 0; i < 3;i++)
exemplaarNrs[i] = exemplaararray[i];
i++;
return exemplaararray;
} |
In de applet waar de kopie wordt opgevraagd lees ik elk element weer uit en plaats die naar een conversie in een tekstvak.
code:
1
2
3
4
5
6
7
8
| int[] array = new int[3];
array = lid.geefExemplaarnrs();
// eerste exemplaar in bezit van het lid
int expl1 = array[0];
exemplaar1Veld.setText("" + expl1);
exemplaar = Bibliotheek.geefExemplaar(expl1);
String exemplaarnaam1 = exemplaar.geefTitel();
titel1Veld.setText(exemplaarnaam1); |
dit doe ik voor elk element, dus [0], [1] en [2]...
Maar in elk veld krijg ik een exemplaarnummer 0...
De vraag is dus hoe dit nu kan ? Ik denk zelf dat het verkeerd gaat bij het kopieren van de originele array elementen naar de array exemplaararray.
Kan iemand aangeven waar ik de fout in ga ?
Everytime I suffer I become a better man because of it