Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: BelCrow en 02 de Septiembre 2014, 02:42
-
Si una clase define varios constructores, el constructor invocado por la sentencia new es el que coincide en número y tipo de parámetros con los utilizados en la sentencia new. Por ejemplo: taxi1 = new Taxi(); invoca al constructor general, mientras que taxi1 = new Taxi (“BFG-7432”) invoca al constructor que requiere un String como parámetro. new Taxi (“BFG-7432”, “Oeste”) invocaría al constructor que requiere dos String como parámetros. new Taxi (“BFG-7432”, “Oeste”, 2) invocaría al constructor que requiere dos String y un entero como parámetros, etc. No puede haber dos constructores que requieran el mismo número y tipo de parámetros (por ejemplo dos constructores que requieran un String) porque eso generaría una ambigüedad que daría lugar a un error de compilación.
Eso lo entiendo perfectamente, pero si en la clase Taxi tengo dos constructores, uno con valores por defecto y uno con varios parámetros (dos int y uno String), entonces taxi1 = new Taxi(2,50) me dará error de compilación por que necesita 3 parámetros para poder invocar ese constructor? "En este caso falta el String".....
-
Si que te dará error, eso que intentas supongo que lo habrás deducido por php o javascript, donde los métodos y funciones, permiten tener parámetros opcionales con valores por defecto.
Eso no ocurre en java, en java si un constructor o un método, tiene 4 parámetros, obligatóriamente, tienes que pasarle los 4 parámetros.
Si tu tienes un constructor con 3 parámetros, y quieres la posibilidad de crear objetos pasando solo 2 parámetros, pues deberás crearte otro constructor que solo reciba 2 parámetros.
En java para el problema de los parámetros por defecto en métodos y constructores, se resuelve mediante la sobrecarga.
Bueno un saludo, si no entiendes algo, nos cuentas.
-
ok..... Gracias, mejor definido de hay no c puede :p....