Autor Tema: Duda entrega CU00652B tuto java diferenciar constructor con parámetros y sin  (Leído 2956 veces)

ramon2

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Ejemplo del bloque CU00652B. En la clase Deposito hay 2 constructores, uno sin parámetros y otro con 3 parámetros. El primero inicializa las 3 variables de la clase (diámetro, altura e identificador) con valores "0", "0" y "". El segundo permite la introducción de estos 3 parámetros al invocarlo. En este segundo constructor se comprueban los valores suministrados en los parámetros y en caso de que no sean correctos se asignan unos valores por defecto de "10", "5" y "000".
El problema es que creando un objeto mediante la invocación al constructor sin parámetros: Deposito (), resulta que se crea un objeto Deposito con los valores "10", "5" y "000". Podéis indicarme el motivo? Gracias
« Última modificación: 20 de Enero 2015, 08:18 por Alex Rodríguez »

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Duda sobre bloque CU00652B
« Respuesta #1 en: 19 de Enero 2015, 22:33 »
Hola Ramon

Tu observación es cierta en parte.

El primer constructor no inicializa, sino que llama al segundo contructor (el de los tres parámetros) para que él inicialice a 0, 0 y cadena vacía.
Esta es la línea que llama al segundo constructor: this(0, 0, "");

Luego el segundo contructor va a inicializar con esos valores, pero en el if se detecta que diametro y altura no son mayores que cero y en consecuencia inicializa con los valores 10, 5 y "000".

¿Por qué no se hace esta inicialización en el primer constructor?
Pues para crear código eficiente y sin duplicidad.
Si llamamos al segundo contructor con los parámetros 0, 0 y "cualquier texto" también inicializará a 10, 5 y "000".

Espero que se vea claro. Saludos.

ramon2

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Perfecto. Gracias.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".