[java] How to override toString() properly in Java?

Well actually you will need to return something like this because toString has to return a string

public String toString() {
 return "Name :" + this.name + "whatever :" + this.whatever + "";
}

and you actually do something wrong in the constructer you set the variable the user set to the name while you need to do the opposite. What you shouldn't do

n = this.name

What you should do

this.name = n

Hopes this helps thanks