Autor Tema: Aprender Java desde cero. CU00652B. Un ejemplo de código Java básico. Clases.  (Leído 3104 veces)

Andromon

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Hola, una pregunta sencilla y quizás muy básica, pero, en este código:

Código: [Seleccionar]
    switch (numeroDeDepositosGrupo) {
            case 1: System.out.println ("Un grupo ha de tener más de un depósito"); break;
           
            case 2:
            deposito1 = new Deposito(); /*Al crear el objeto automáticamente se llama al constructor del mismo, en este caso sin parámetros. ESTO ES EJEMPLO DE SINTAXIS DE CREACIÓN DE UN OBJETO, EN ESTE CASO DENTRO DE OTRO */
            deposito2 = new Deposito();       
            numeroDepositosGrupo = 2;
            break;

            case 3: deposito1 = new Deposito(); deposito2 = new Deposito(); deposito3 = new Deposito();
            numeroDepositosGrupo = 3;
            break;

            default: System.out.println ("No se admiten más de tres depósitos");
            //Esto no evita que se cree el objeto.
            break;
        } //Cierre del switch
    } //Cierre del constructor

¿Por qué para cada case vuelve a reestablecer la variable numeroDepositosGrupo?

Si estamos en case 2 , ¿no sabe ya que numeroDepositosGrupo = 2? Si no se pusiera numeroDepositosGrupo en ninguna cláusula case, ¿variaría el número original tomado en switch(numeroDepositosGrupo) ? Que no termino de verlo claro, gracias.

Para asegurar, esto es lo que yo pregunto si no es correcto:

Código: [Seleccionar]
    switch (numeroDeDepositosGrupo) {
            case 1: System.out.println ("Un grupo ha de tener más de un depósito"); break;
           
            case 2:
            deposito1 = new Deposito(); /*Al crear el objeto automáticamente se llama al constructor del mismo, en este caso sin parámetros. ESTO ES EJEMPLO DE SINTAXIS DE CREACIÓN DE UN OBJETO, EN ESTE CASO DENTRO DE OTRO */
            deposito2 = new Deposito();       
            break;

            case 3: deposito1 = new Deposito(); deposito2 = new Deposito(); deposito3 = new Deposito();
            break;

            default: System.out.println ("No se admiten más de tres depósitos");
            //Esto no evita que se cree el objeto.
            break;
        } //Cierre del switch
    } //Cierre del constructor
« Última modificación: 06 de Abril 2015, 23:37 por Alex Rodríguez »

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Hola Andromon

Si, parece un lío de variables.

Tu duda se solventará cuando veas que una cosa es el atributo de la clase
    numeroDepositosGrupo
y otro el parámetro que recibe el método
    GrupoDepositos (int numeroDeDepositosGrupo, String valor_idGrupo)
la diferencia está en una De de más

No son la misma variable. El código lo que hace es:
Cuando el parámetro recibido vale 2 se iguala el atributo de la clase a 2, etc.

También se podría hacer, en lugar de:
    numeroDepositosGrupo = 2;
poner
    numeroDepositosGrupo = numeroDeDepositosGrupo;

Saludos

Andromon

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Correcto toni, gracias, son tan parecidos los nombres que realmente no caí en que eran distintos... Y no terminaba de verle ningún sentido, ahora sí realmente.
« Última modificación: 06 de Abril 2015, 23:36 por Alex Rodríguez »

 

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".