[JAVA] toString methode ??

Pagina: 1
Acties:
  • 158 views sinds 30-01-2008

  • drpeer_holland
  • Registratie: September 2001
  • Laatst online: 08-09 12:46
Hoi,

Ik heb een probleem met een toString methode.
ik heb een class voertuig en subclasse personenauto, nu moet een toString methode maken maar weet niet hoe ik het type van het voertuig uit de class moet halen en daarna om moet zetten naar String.

Weet iemand dit toevallig, hieronder staat de code, met de uitleg wat de toString methode moet doen.

Het zijn 2 toString methode's 1 in de classe voertuig en 1 in de classe personenauto.

Alvast bedankt,

Grtz

Drpeer_holland
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
63
64
65
66
import java.awt.*;
import java.applet.*;
import java.util.*;

class Voertuig
{
    public Voertuig p;
    String kenteken;
    int gewicht;
    String klant;
    Date onderhoud;
    String xyz;
    
          
    Voertuig (String kt, int gw)
    {
      kenteken = kt;
      gewicht = gw;
    }
    public void setVoertuig(Voertuig p)
    {
    this.p = p;
    }
    String getKenteken()
    {
      return kenteken;
    }
      
    int getGewicht()
    {
      return gewicht;
    }
    String getKlant()
    {
      return klant;
    }
      
    public void setKlant (String klant)
    {
      this.klant = klant;
    }
    Date getOnderhoud()
    {
      return onderhoud;
    }
    public void setOnderhoud(Date onderhoud)
    {
      this.onderhoud = onderhoud;
    }
    public String getXyz()
    {
      return xyz;
    }
    public void setXyz(String xyz)
    {
      this.xyz = xyz;
    }
    -> public String toString()
    /** post: returnwaarde = Duidelijke aanduiding van elk  voetuig met het type voertuig + kenteken
     */
    {
      String v = "" + this.kenteken + "," + p;
      return v;
    }
    
}


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
import java.awt.*;
import java.applet.*;

class PersonenAuto extends Voertuig
    {
      
      private char brandstof;
      Color kleur;
      
      public PersonenAuto(String kt,int gw,char bs,Color k)
      {
        
        super(kt,gw);
        this.brandstof = bs;
        this.kleur = k;
      }
       
      char getBrandstof()
      {
        return brandstof;
      }
      Color getKleur()
      {
        return kleur;
      }
      public void setGewicht(int gewicht)
      {
        this.gewicht= gewicht;
      }
      public void setBrandstof(char brandstof)
      {
        this.brandstof =  brandstof;
      }
      public void setKleur(Color kleur)
      {
        this.kleur = kleur;
      }
      -> public String toString()
    /** post: returnwaarde = Duidelijke aanduiding van elk voetuig met het type voertuig + kenteken
     */
    {
      
      String v = "" + this.kenteken + "," + p; 
      return v;
    }
    }

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Het type voertuig is natuurlijk een personenauto dus dat lijkt mij niet zo moeilijk ;) .

Verder zou ik allereerst eens wat aan je naamgeving doen. Al die afkortingen voor variabelen is erg on-Java en je gaat daarmee later gegarandeerd een keer mee op je bek ;) .

v, gw, p, xyz bs, kt en k is echt not done. Kies gewoon geweicht, kenteken, kleur, brandstof enzovoorts.

Verder mankeert er nog wel meer. Een brandstof is bijvoorbeeld geen char maar een brandstof :+ . Daarvan kan je dus beter een aparte klasse maken. Hetzelfde geldt imho voor een kenteken.

Verder is de naamgeving van de methode setOnderhoud slecht: is dat de laatste datum van een onderhoud? De eerst volgende datum waarop dat nodig is? Je moet duidelijk aangeven wat die Date is en wat je daar set :) .

Last but certainly not least is de methode setVoertuig in de klasse Voertuig erg raar. Wat wil je daarmee? Een Voertuig object is al een Voertuig, dus daar hoef je helemaal geen Voertuig instantie op in te stellen....

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • drpeer_holland
  • Registratie: September 2001
  • Laatst online: 08-09 12:46
Ik wilde alleen even weten hoe dat die toString methode werkt, de rest is nog niet goed maar dit moet ik nog aanpassen en wat betreft de benamingen, dit stond zo in mijn dictaat dus daar verander ik niets aan, ook al is dit (vind ik ook) onoverzichtelijk.

Dus Hoe moet ik uit de classe halen om wat voor voertuig het gaat want verderop in de opdracht komen er nog meer classes bij zoals bus.. en dit moet ik tonen in een lijst.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Mijn eerste zin bevatte het antwoord:
mbravenboer: Het type voertuig is natuurlijk een personenauto dus dat lijkt mij niet zo moeilijk ;) .
Verder mag je hoogst waarschijnlijk wel zelf weten hoe je de zin opmaakt, dus maak er gewoon wat leuks van :) . Je kunt natuurlijk gewoon even testen wat eruit komt in verschillende situaties.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • nxt
  • Registratie: November 2001
  • Laatst online: 26-08 13:51

nxt

wel, je zou in PersonenAuto de toString method
"PersonenAuto" ofzoiets kunnen laten returnen,
en als je dan iets doet als


Voertuig v=new PersonenAuto(..)
en dan v.toString()

dan rolt daar volgens mij "PersonenAuto" uit

  • drpeer_holland
  • Registratie: September 2001
  • Laatst online: 08-09 12:46
Op woensdag 20 februari 2002 00:50 schreef mbravenboer het volgende:
Mijn eerste zin bevatte het antwoord:
[..]

Verder mag je hoogst waarschijnlijk wel zelf weten hoe je de zin opmaakt, dus maak er gewoon wat leuks van :) . Je kunt natuurlijk gewoon even testen wat eruit komt in verschillende situaties.
Ik snap ook wel dat het om een personenauto gaat, maar hoe zet ik dit in een methode, dat hij de naam personenauto uit de classe of zoiets haalt

  • nxt
  • Registratie: November 2001
  • Laatst online: 26-08 13:51

nxt

Op woensdag 20 februari 2002 00:52 schreef drpeer_holland het volgende:

Ik snap ook wel dat het om een personenauto gaat, maar hoe zet ik dit in een methode, dat hij de naam personenauto uit de classe of zoiets haalt
wel, die naam kun je nu leuk in de toString() method van de class PersonenAuto zetten

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik zou m'n dictaat er nog maar eens bij pakken...

Je hoeft het helemaal niet uit de klasse te halen. Je kunt het gewoon in de String opnemen:
code:
1
String result = "Personen-auto: " + getKenteken() + " wat je nog meer wilt laten zien";

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • nxt
  • Registratie: November 2001
  • Laatst online: 26-08 13:51

nxt

oh nu zie ik het pas

die setVoertuig(......)
set de variabele p
en die wordt in de toString() method er aan geplakt

is mijns inziens niet de meest practische oplossing,

want dan wordt toString() aangeroepen die op zijn beurt
p toString laat aanroepen, die op zijn beurt weer.......
naja, je snapt het idee wel
edit: dat wordt of een nullpointer exception of een loop

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
n P&W lost het wel op serie.... De kennis die je nodig hebt om dit op te lossen is toch wel enorme basis kennis. Deze basiskennis doe je niet op door op P&W kleine problemen op te laten lossen maar door je materiaal degelijk te bestuderen. Als je hier niet uitkomt heb je er nog maar weinig van begrepen en moet je toch echt eerst zelf meer aan de slag gaan. P&W je probleem op laten lossen lijkt makkelijk, maar je leert er niets van.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1

Dit topic is gesloten.