Vermeiden Sie komplexe Berechnungen in Konstruktoren. Verwenden Sie Konstruktor ausschließlich dazu, die Felder eines Objekts zu initialisieren.
public static class Base {
public Base( Integer value1, Integer value2 ) {
this .value1 = value1;
this .value2 = value2;
}
public void init() {
value3 = getThirdValue();
}
protected Integer getThirdValue() {
return value1;
}
protected Integer value1;
protected Integer value2;
protected Integer value3;
}
public static class Derived extends Base {
public Derived( Integer value1, Integer value2 ) {
super( value1, value2 );
}
protected Integer getThirdValue() {
return new Integer( value2.intValue() * 10 );
}
}
public static void main( String[] args ) {
Derived derived = new Derived( new Integer( 1 ), new Integer( 2 ) );
derived.init();
}
|
|