Ben bezig met een progje om wat extra te oefenen voor school.
Nu heb ik er al verschillende gemaakt en kom ik steeds weer bij hetzelfde probleem uit.
Namelijk als ik mijn objecten uit een array wil afdrukken wordt er steeds de info van het laatste object afgedrukt.
Ik weet dus dat ik ergens iets fout doe, maar ik vind het niet, of ik zie het niet,
Kan iemand me hier mee helpen?
Ik zal de code van voorbeeld progje even hier plaatsen:
zo zijn er ook nog klassen voor neus, mond en hand
En dan de main, waar het denk ik de mist in gaat:
als output geeft ie:
terwijl het zoiets zou moeten zijn:
Dus nog eens men vraag, iemand tips of aanwijzingen hoe ik dit kan verbeteren
Nu heb ik er al verschillende gemaakt en kom ik steeds weer bij hetzelfde probleem uit.
Namelijk als ik mijn objecten uit een array wil afdrukken wordt er steeds de info van het laatste object afgedrukt.
Ik weet dus dat ik ergens iets fout doe, maar ik vind het niet, of ik zie het niet,
Kan iemand me hier mee helpen?
Ik zal de code van voorbeeld progje even hier plaatsen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| public class Zintuig { private static String naam; private static String actie; /** * */ public Zintuig(String nm, String act) { setNaam(nm); setActie(act); } /** * @return the naam */ public String getNaam() { return naam; } /** * @param naam the naam to set */ public static void setNaam(String naam) { Zintuig.naam = naam; } /** * @return the actie */ public String getActie() { return actie; } /** * @param actie the actie to set */ public static void setActie(String actie) { Zintuig.actie = actie; } } |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
| public abstract class Lichaamsdeel { public static String naam; public static String positie; public static Zintuig zintuig; /** * */ public Lichaamsdeel(String nm, String pos, Zintuig zin) { naam = nm; positie = pos; zintuig = zin; } /** * @return the naam */ public static String getNaam() { return naam; } /** * @param naam the naam to set */ public static void setNaam(String naam) { Lichaamsdeel.naam = naam; } /** * @return the positie */ public static String getPositie() { return positie; } /** * @param positie the positie to set */ public static void setPositie(String positie) { Lichaamsdeel.positie = positie; } /** * @return the zintuig */ public static Zintuig getZintuig() { return zintuig; } /** * @param zintuig the zintuig to set */ public static void setZintuig(Zintuig zintuig) { Lichaamsdeel.zintuig = zintuig; } public abstract void output(); public abstract String beweeg(String str); } |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
| public class Oog extends Lichaamsdeel { private static Color k; /** * @param nm * @param pos * @param zin */ public Oog (String nm, String pos, Zintuig zin){ super(nm, pos, zin); } /** * @param nm * @param pos * @param zin * @param k */ public Oog(String nm, String pos, Zintuig zin, Color k) { super(nm, pos, zin); setK(k); // TODO Auto-generated constructor stub } /** * @return the k */ public static Color getK() { return k; } /** * @param k the k to set */ public static void setK(Color k) { Oog.k = k; } @Override public String beweeg(String str) { return ("Met mijn " + str + " kan ik knipperen."); } @Override public void output() { System.out.println( "Mijn " + this.naam + " bevindt zich " + this.positie + "." + "\n" + "\tDe iris van mijn" + this.naam + " heeft deze kleur: " + this.k + "." + "\n" + beweeg(this.naam) + "\n" + "Als zintuig heb ik " + this.zintuig.getNaam() + " waardoor ik kan " + this.zintuig.getActie() + ".\n"); } } |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| public class Oor extends Lichaamsdeel { /** * @param nm * @param pos * @param zin */ public Oor(String nm, String pos, Zintuig zin) { super(nm, pos, zin); // TODO Auto-generated constructor stub } @Override public String beweeg(String str) { return ("Met mijn " + str + " kan ik flapperen."); } [s][/s] @Override public void output() { System.out.println( "Mijn " + naam + " bevindt zich " + positie + "." + "\n" + beweeg(naam) + "\n" + "Als zintuig heb ik " + zintuig.getNaam() + " waardoor ik kan " + zintuig.getActie() + ".\n"); } } |
zo zijn er ook nog klassen voor neus, mond en hand
En dan de main, waar het denk ik de mist in gaat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| public class TestLichaam { public static void main(String[] args) { Lichaamsdeel [] lichaamsdelen = { new Oog("linker oog", "in mijn oogkas", new Zintuig("zicht", "zien"), Color.blue), new Oog("rechter oog", "in mijn oogkas", new Zintuig("zicht", "zien"), Color.blue), new Oor("linker oor", "aan de zijkant van mijn hoofd", new Zintuig("gehoor","horen")), new Oor("rechter oor", "aan de zijkant van mijn hoofd", new Zintuig("gehoor","horen")), new Neus("neus", "in het midden van mijn gezicht", new Zintuig("reuk","ruiken")), new Mond("mond", "onder mijn neus", new Zintuig("smaak","proeven")), new Hand("linker hand","aan mijn pols", new Zintuig("tast","voelen")), new Hand("rechter hand","aan mijn pols", new Zintuig("tast","voelen")), }; for (int i = 0; i < lichaamsdelen.length; i++) { if (lichaamsdelen[i] instanceof Oog) { ((Oog)lichaamsdelen[i]).output(); } else{ if (lichaamsdelen[i] instanceof Oor) { ((Oor)lichaamsdelen[i]).output(); } else{ if (lichaamsdelen[i] instanceof Neus) { ((Neus)lichaamsdelen[i]).output(); } else{ if (lichaamsdelen[i] instanceof Mond) { ((Mond)lichaamsdelen[i]).output(); } else{ ((Hand)lichaamsdelen[i]).output(); } } } } } } } |
als output geeft ie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| Mijn rechter hand bevindt zich aan mijn pols. De iris van mijnrechter hand heeft deze kleur: java.awt.Color[r=0,g=0,b=255]. Met mijn rechter hand kan ik knipperen. Als zintuig heb ik tast waardoor ik kan voelen. Mijn rechter hand bevindt zich aan mijn pols. De iris van mijnrechter hand heeft deze kleur: java.awt.Color[r=0,g=0,b=255]. Met mijn rechter hand kan ik knipperen. Als zintuig heb ik tast waardoor ik kan voelen. Mijn rechter hand bevindt zich aan mijn pols. Met mijn rechter hand kan ik flapperen. Als zintuig heb ik tast waardoor ik kan voelen. Mijn rechter hand bevindt zich aan mijn pols. Met mijn rechter hand kan ik flapperen. Als zintuig heb ik tast waardoor ik kan voelen. Mijn rechter hand bevindt zich aan mijn pols. Met mijn rechter hand kan ik niezen. Als zintuig heb ik tast waardoor ik kan voelen. Mijn rechter hand bevindt zich aan mijn pols. Met mijn rechter hand kan ik pruilen. Als zintuig heb ik tast waardoor ik kan voelen. Mijn rechter hand bevindt zich aan mijn pols. Met mijn rechter hand kan ik zwaaien. Als zintuig heb ik tast waardoor ik kan voelen. Mijn rechter hand bevindt zich aan mijn pols. Met mijn rechter hand kan ik zwaaien. Als zintuig heb ik tast waardoor ik kan voelen. |
terwijl het zoiets zou moeten zijn:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| Mijn linker oog bevindt zich in mijn oogkas. De iris van mijn linker oog heeft deze kleur: java.awt.Color [r=0,g=0,b=255]. Met mijn linker oog kan ik knipperen. Als zintuig heb ik zicht waardoor ik kan zien. Mijn rechter oog bevindt zich in mijn oogkas. De iris van mijn rechter oog heeft deze kleur: java.awt.Color [r=0,g=0,b=255]. Met mijn rechter oog kan ik knipperen. Als zintuig heb ik zicht waardoor ik kan zien. Mijn linker oor bevindt zich aan de zijkant van mijn hoofd. Met mijn linker oor kan ik flapperen. Als zintuig heb ik gehoor waardoor ik kan horen. Mijn rechter oor bevindt zich aan de zijkant van mijn hoofd. Met mijn rechter oor kan ik flapperen. Als zintuig heb ik gehoor waardoor ik kan horen. ... |
Dus nog eens men vraag, iemand tips of aanwijzingen hoe ik dit kan verbeteren