Constructors should not access the values of fields that haven't yet been initialized.


== Noncompliant Code Example

----
public abstract class MyAbstractClass() {

  String name;
  String fname;
  int hashCode;

  public abstract String getValue();

  public MyAbstractClass(String name) {
    this.fname = this.name.split()[0];  // Noncompliant; this.name not assigned yet
    this.hashCode = getValue().hashCode();  // Noncompliant; child class constructor hasn't run yet
  }
}
----

