Toon posts:

[Java] Print/String probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik moet voor mijn huiswerk een gezicht maken met 3 classes de classes gezicht, mond, oog en die samen laten werken zodat er verschillende emoties kunnen worden weergeven wat er nou gebeurt is dat als ik het gezicht in zijn geheel wil printen op het scherm dan komen er allemaal rare tekentjes inplaats van wat er hoort te staan :?
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
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
public class Gezicht
{
    private Mond mond;
    private Oog linkerOog;
    private Oog rechterOog;
    
    
public Gezicht()
{
    linkerOog = new Oog();
    rechterOog = new Oog();
    mond = new Mond();
}

public void kijk(int manier)
{
    if (manier == 0 && manier <= 2 && manier >= 0)
    {
        linkerOog.setToestand(0);
        rechterOog.setToestand(0);
        mond.setToestand(0);
    }
    
    else if (manier == 1 && manier <= 2 && manier >= 0)
    {
        linkerOog.setToestand(1);
        rechterOog.setToestand(1);
        mond.setToestand(1);
    }
    
    else if (manier == 2 && manier <=2 && manier >=0)
    {
        linkerOog.setToestand(2);
        rechterOog.setToestand(2);
        mond.setToestand(2);
    }
    
    else
    {
        System.out.println("Voer een getal in tussen 0 en 2");
    }
}

public void toonGezicht()
{
    System.out.println("  xxxxxxxx");
    System.out.println(" x        x");
    System.out.println("x          x");
    System.out.println("x  " + linkerOog + rechterOog +"  x");
    System.out.println("x          x");
    System.out.println("x  " + mond + "  x");
    System.out.println(" x        x");
    System.out.println("  xxxxxxxx");
}
}

dat is de class gezicht
en de klasse oog:
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class Oog
{
    private int toestand;
    private String normaal;
    private String vrolijk;
    private String indewar;
    
public Oog()
{
    toestand = 0;
    normaal = "o  o";
    vrolijk = "O  0";
    indewar= "x  x";
}

public void setToestand(int nieuw)
{
    if (nieuw >= 0 && nieuw <= 2)
    {
        toestand = nieuw;
    }
    
    else
    { 
        System.out.println("Voer een getal in tussen 0 en 2");
    }
}

public String getImage()
{
    if (toestand == 0)
    {
       return normaal;
    }
    
    else if (toestand == 1)
    {
       return vrolijk;
    }
    
    else
    {
       return indewar;
    }
}
}

De class mond is hetzelfde principe als de class oog maar ik denk niet dat het aan de classes oog en mond ligt maar aan gezicht maar ik kan het ook fout hebben 8)7 ik kom er echt niet meer uit heeft iemand tips aan wat ik kan veranderen zodat ik het misschien wel werkende krijg?
alvast Bedankt voor jullie hulp _/-\o_

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11:06

Janoz

Moderator Devschuur®

!litemod

de klasse oog is geen string en heeft ook niet een overridden toString methode. Je kunt oog wel in een println gebruiken, maar dan wordt niet automatisch de getImage methode aangeroepen.

Sowieso vraag ik me af of je volledig begrijpt waar je mee bezig bent. In de oog class zie ik dat er 2 ogen afgedrukt worden terwijl je in je gezicht class uitgaat van 2 losse ogen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Glabbeek
  • Registratie: Februari 2001
  • Laatst online: 12-02 11:54

Glabbeek

Dat dus.

Je probeert de nu stringvalue van Oog op te halen. Aangezien je die niet hebt gedefinieerd, zal de .getString() van Object gebruikt worden. Kijk eens naar Gezicht.toonGezicht() en dan specifiek naar de aanroep van Oog. Volgens mij heb je een hele mooie method klaarliggen :)

En zo is het maar net.


Verwijderd

Topicstarter
Janoz schreef op maandag 02 oktober 2006 @ 16:01:
de klasse oog is geen string en heeft ook niet een overridden toString methode. Je kunt oog wel in een println gebruiken, maar dan wordt niet automatisch de getImage methode aangeroepen.

Sowieso vraag ik me af of je volledig begrijpt waar je mee bezig bent. In de oog class zie ik dat er 2 ogen afgedrukt worden terwijl je in je gezicht class uitgaat van 2 losse ogen.
oke dat was een fout jah met die 2 ogen maar als ik dat verander dan is het probleem er nog steeds ik probeer nu nog wel wat met die getImage methode aanroep

  • azteke
  • Registratie: September 2002
  • Laatst online: 09-02 10:34

azteke

King

1. Je linkeroog en je rechteroog zijn altijd hetzelfde, o, 0 of x. Waarom maak je dan 2 verschillende ogen?
2. tijdens het printen wil je direct 'linkeroog' printen. Je print daarmee een instantie van de klasse Oog uit, en niet een stukje tekst. Dus krijg je allemaal rare tekens

Als je in je klasse Oog een methode erbij doet, iets van getOog();, die een string teruggeeft, dan ben je al weer een stukje verder ;)

public string getOog() {
return( normaal);
}
(dit is niet de oplossing voor je probleem, meer een hulpmiddel om het beter te begrijpen!)

Buiten dit alles, als je er niet meer uitkomt moet je altijd proberen te achterhalen wat er gebeurd met je programmatje. Begin bij het begin en kijk stap voor stap wat je verandert en wat je opvraagt. En blijf vooral logisch denken! Het belangrijkste van programmeren is dat je de logica blijft zien.

Succes!

CMDR azteke || You never get a second chance to make a first impression...


Verwijderd

Topicstarter
Azteke schreef op maandag 02 oktober 2006 @ 16:05:
1. Je linkeroog en je rechteroog zijn altijd hetzelfde, o, 0 of x. Waarom maak je dan 2 verschillende ogen?
2. tijdens het printen wil je direct 'linkeroog' printen. Je print daarmee een instantie van de klasse Oog uit, en niet een stukje tekst. Dus krijg je allemaal rare tekens

Als je in je klasse Oog een methode erbij doet, iets van getOog();, die een string teruggeeft, dan ben je al weer een stukje verder ;)

public string getOog() {
return( normaal);
}
(dit is niet de oplossing voor je probleem, meer een hulpmiddel om het beter te begrijpen!)

Buiten dit alles, als je er niet meer uitkomt moet je altijd proberen te achterhalen wat er gebeurd met je programmatje. Begin bij het begin en kijk stap voor stap wat je verandert en wat je opvraagt. En blijf vooral logisch denken! Het belangrijkste van programmeren is dat je de logica blijft zien.

Succes!
oeh bedankt voor de info maar waarom ik 2 ogen maak is omdat dat in de opdracht stond he de logica daarvan begrijp ik ook niet mahjah :? Ik ga nu ff verder proberen :P _/-\o_

[ Voor 29% gewijzigd door Verwijderd op 02-10-2006 16:12 ]


Verwijderd

Topicstarter
oke mensen bedankt voor jullie hulp het is gelukt in de klasse gezicht bij de system.out.println
niet meteen die linkeroog aanroepen maar dus linkeroog.getImage() aanroepen :*) bedankt voor jullie hulp _/-\o_
Pagina: 1