Daniel Thoma: in einer Methode zusammenfassen

Beitrag lesen

Hallo derletztekick,

darüber hinaus müssten die Objektvariablen public static werden, danach ging es wie Du Dir das gedacht hattest ;)

Nun, ich dachte natürlich daran, dass diese Klassen innerhalb des Objektes erzeugt werden. Die Eigenschaften statisch zu machen, ist eher keine gute Idee. Dann kannst Du ja nicht mehr mehrere Instanzen mit verschiedenen Parametern haben. Du solltest darauf dann natürlich über eine Objektreferenz zugreifen.

Vorhin ist mir auch noch eingefallen, dass man das mit Enumerationen schön kombinieren und damit typsicher machen könnte auch ohne mit Arrays oder Maps statt Eigenschaften zu arbeiten.

  
public class Clothoid {  
  
    private double x = 1;  
    private double y = 2;  
    private double z = 3;  
  
    public enum Parameter {  
        X {  
            double getValue(Clothoid obj) {  
                return obj.x;  
            }  
        },  
        Y {  
            double getValue(Clothoid obj) {  
                return obj.y;  
            }  
        },  
        Z {  
            double getValue(Clothoid obj) {  
                return obj.z;  
            }  
        };  
        abstract double getValue(Clothoid obj);  
    }  
  
    public double toWas(double d, Parameter p) {  
        return d * p.getValue(this);  
    }  
  
}  
  
//Von außen kann man dann einfach so zugreifen:  
public static void main(String[] argv) {  
    Clothoid c = new Clothoid();  
    for (Parameter p: Clothoid.Parameter.values()) {  
        System.out.println(c.toWas(2, p));  
    }  
}  

Dieses Beispiel habe ich jetzt sogar getestet.

Grüße

Daniel