Ik moet voor school een java opdracht maken. Ik heb nog niet erg veel kennis op java gebied, ik heb namelijk pas sinds oktober les. Dus, met dat in gedachte is de opdracht als volgt:
De firma Luggage & Co rust haar reiskoffers uit met een kofferslot dat bestaat uit twee letters en 1 cijfer. Mogelijke combinaties zijn bijvoorbeeld BE7, KS2 en ML9.
Er moeten drie klassen zijn: cijfer, letter en kofferslot.
- De klasse Cijfer heeft een private attribute cijfer van type int. Ook is er een constructor Cijfer(). De methode getCijfer() geeft het cijfer uit de klasse terug, en de methode setCijfer(int cijfer) initialiseert het cijfer.
Voor de methode volgende() van de klasse Cijfer geldt: na 0 komt 1, na 1 komt 2, ... et cetera. Na 9 ga je verder met 0.
- De klasse Letter heeft een private attribute letter van type char. Ook is er een constructor Letter(). De methode getLetter() geeft de letter uit de klasse terug, en de methode setLetter(char letter) initialiseert de letter.
Voor de methode volgende() van de klasse Letter geldt: na ‘A’ komt ‘B’, na ‘B’ komt ‘C’,... et cetera. Na ‘Z’ ga je verder met ‘A’.
- De klasse Kofferslot heeft twee private-attributen: (1) een array van twee Letters en (2) een Cijfer. Dit array is verplicht!
Verder heeft de klasse Kofferslot twee constructors namelijk (1) Kofferslot() en (2) Kofferslot(char letter1, char letter2, int cijfer).
De methode setCombinatie(char letter1, char letter2, int cijfer) initialiseert het kofferslot met deze waarden.
De methode volgende() van de klasse Kofferslot genereert de combinaties in deze volgorde:
AA0 AA1 AA2 AA3 .. AA9 -> AB0 .. -> AZ9 -> BA0
Tot zo ver de opdracht. Ik heb volgens mij de klassen cijfer en letter af en kloppen deze ook:
Tot zo ver waar ik het nog begreep. Nu komt dus de main klasse, het kofferslot. Hier heb ik het volgende voor:
Hier zit ik vast. Wat er volgens mij in moet komende te staan is het zetten van een Kofferslot, bijvoorbeeld AA0 en dan moet het volgende slot worden AA1. Dus eigenlijk wil ik het oude slot printen en vervolgens het nieuwe slot. Ik ben er alleen niet uit waar ik dit moet gaan doen. Verder weet ik dat ik een array moet gebruiken waar twee letters in staan, maar hoe ik die letters er in ga zetten en waarom snap ik niet. Volgens mij moeten Kofferslot() en Kofferslot(char letter1, char letter2, int cijfer) leeg blijven. setCombinatie moet de combinatie maken, dus bijvoorbeeld AA0 en dan maakt de methode volgende() er AA1 van. Echter weet ik niet hoe ik dit moet doen.
Kan iemand mij op weg helpen? Zit ik goed met mijn aannamen?
De firma Luggage & Co rust haar reiskoffers uit met een kofferslot dat bestaat uit twee letters en 1 cijfer. Mogelijke combinaties zijn bijvoorbeeld BE7, KS2 en ML9.
Er moeten drie klassen zijn: cijfer, letter en kofferslot.
- De klasse Cijfer heeft een private attribute cijfer van type int. Ook is er een constructor Cijfer(). De methode getCijfer() geeft het cijfer uit de klasse terug, en de methode setCijfer(int cijfer) initialiseert het cijfer.
Voor de methode volgende() van de klasse Cijfer geldt: na 0 komt 1, na 1 komt 2, ... et cetera. Na 9 ga je verder met 0.
- De klasse Letter heeft een private attribute letter van type char. Ook is er een constructor Letter(). De methode getLetter() geeft de letter uit de klasse terug, en de methode setLetter(char letter) initialiseert de letter.
Voor de methode volgende() van de klasse Letter geldt: na ‘A’ komt ‘B’, na ‘B’ komt ‘C’,... et cetera. Na ‘Z’ ga je verder met ‘A’.
- De klasse Kofferslot heeft twee private-attributen: (1) een array van twee Letters en (2) een Cijfer. Dit array is verplicht!
Verder heeft de klasse Kofferslot twee constructors namelijk (1) Kofferslot() en (2) Kofferslot(char letter1, char letter2, int cijfer).
De methode setCombinatie(char letter1, char letter2, int cijfer) initialiseert het kofferslot met deze waarden.
De methode volgende() van de klasse Kofferslot genereert de combinaties in deze volgorde:
AA0 AA1 AA2 AA3 .. AA9 -> AB0 .. -> AZ9 -> BA0
Tot zo ver de opdracht. Ik heb volgens mij de klassen cijfer en letter af en kloppen deze ook:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| public class Cijfer { private int cijfer; public Cijfer() { } public void volgende() { if (cijfer > 9) { cijfer = 0; } else { cijfer++; } } public int getCijfer() { return cijfer; } public void setCijfer(int cijfer) { this.cijfer = cijfer; } } |
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| public class Letter { private char letter; public Letter() { } public void volgende() { if (letter == '[') { letter = 'A'; } else { letter++; } } public char getLetter() { return letter; } public void setLetter(char letter) { this.letter = letter; } } |
Tot zo ver waar ik het nog begreep. Nu komt dus de main klasse, het kofferslot. Hier heb ik het volgende voor:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| public class Kofferslot { public static void main(String[] args) { Kofferslot slot = new Kofferslot(); slot.Kofferslot('A', 'A', 0); } private Letter letters[] = new Letter[2]; private Cijfer cijfer; Kofferslot() { } public void Kofferslot(char letter1, char letter2, int cijfer) { } public void setCombinatie(char letter1, char letter2, int cijfer) { } public void volgende() { } } |
Hier zit ik vast. Wat er volgens mij in moet komende te staan is het zetten van een Kofferslot, bijvoorbeeld AA0 en dan moet het volgende slot worden AA1. Dus eigenlijk wil ik het oude slot printen en vervolgens het nieuwe slot. Ik ben er alleen niet uit waar ik dit moet gaan doen. Verder weet ik dat ik een array moet gebruiken waar twee letters in staan, maar hoe ik die letters er in ga zetten en waarom snap ik niet. Volgens mij moeten Kofferslot() en Kofferslot(char letter1, char letter2, int cijfer) leeg blijven. setCombinatie moet de combinatie maken, dus bijvoorbeeld AA0 en dan maakt de methode volgende() er AA1 van. Echter weet ik niet hoe ik dit moet doen.
Kan iemand mij op weg helpen? Zit ik goed met mijn aannamen?