Hola,
Cita: que no puedo asignar el valor por defecto desde una variable de una clase?
No, si no recuerdo mal solo puedes especificar valores constantes, no variables.
Solucion: dales '' o 0 o NULL o un valor no valido como valor por defecto, dentro de la funcion con un if comparas el valor que tienen los parametros con el valor por defecto, si coinciden le asignas el valor de la propiedad de la clase.
Saludos.