bei Methodenaufruf Konstanten übergeben

melmager

Erfahrenes Mitglied
Welche Möglichkeiten gibt es Konstantwerte eine Methode zu übergeben wobei die Konstanten selbst in der eigenen Classe definiert werden.
Was ich meine ist sowas in der Art:

Auto opel = new Auto();
int menge = opel.getmenge( -blau- );

blau ist in dem Beispiel eine Konstante der Classe Auto. Der Aufrufer weiss zwar das es blaue Autos gibt aber er braucht nicht wissen was für ein Wert sich dahinter "versteckt".
In C wird sowas ja öfter gemacht das in einer h Datei Konstanten definiert werden
Ist so ein Vorgehen in Java sinnvoll ?(ich finde ja)
und wie implementiert man sowas?

mir als Java Anfänger fallen so auf Anhieb zwei Möglichkeiten ein:

Mit Variablennamen arbeiten:
Code:
class Auto {
 public int blau = 0, rot = 1;
 public int getmenge(int farbe) { ...... return erg; }
}
dann so:
Code:
int menge = opel.getmenge(opel.blau);
oder mit einem String arbeiten
Code:
class Auto {
  private String farben = "blau rot gelb";
  public int getmenge(String farbe) {
   // wir suchen die postition im String farben und arbeiten damit weiter
  }
}
und Aufruf dann so:
Code:
int menge = opel.getmenge("blau");
oder bin ich auf einem total falschen Dampfer? :-(
 

Tobias Menzel

Erfahrenes Mitglied
Hi,

ich würde wahrscheinlich die Variablen als statische Member der Klasse Auto deklarieren und so aufrufen:
Code:
class Auto {
 public final static int BLAU = 0, ROT = 1;
 public int getmenge(int farbe) { ...... return erg; }
}
Code:
int menge = opel.getmenge(Auto.BLAU);
So ist es m.E. in der API in einigen Klassen der Fall (Color.red, Font.PLAIN) ... allerdings steige ich auch erst ein in JAVA und kann mich irren... ;)

Gruß
.
 
Zuletzt bearbeitet: