You can prefix the valconstructor arguments to make it a little shorter, which actually matches your second piece of code:
class Complex(val re: Double, val im: Double) {
override def toString() = "" + re + (if (im < 0) "" else "+") + im + "i"
}
, def , val -. , . , val def.