Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Por que no autentica

public class Gerente extends Funcionario {

    private int clave;

    public void setClave(int clave) {
        this.clave = clave;
    }

    public boolean iniciarSesion(int clave) {
        if (this.clave == clave){
            return true;
        }else {
            return false;
        }

    }

}
        //Funcionario gerente = new Funcionario();
        Gerente gerente = new Gerente();
        //gerente.setNombre("David");
        //gerente.setSalario(5000);
        //gerente.setTipo(1);
        gerente.setClave(123);


        System.out.println(gerente.iniciarSesion(123));
    }
}

se supone que no deberia poner la clave en el System.out.println

1 respuesta

Hola Jorge Leonardo, espero que esté bien.

Gracias por compartir tu código con nosotros, he probado aquí y el resultado ha sido muy bueno, Al finalizar, apareció en pantalla el mensaje "true", debido a la llamada a la función: System.out.println(gerente.iniciarSesion(123));

¿Cuál fue el error que encontraste? El título de su pregunta es "¿Por qué no se autentica?", pero en tu código funciona bien. ¿Podría decirme más sobre el error, por favor? Estaré atenta a tu mensaje =]

Analizando el codigo:

  • en el método main después de crear el objeto gerente del tipo Gerente tu cambia el valor de la variable clave llamando a la función setClave para "123";
  • en la línea 13 tu llama la función de imprimir System.out.println enviando como parámetro el valor de la variable de instancia clave;
  • como el valor enviado es igual al valor insertado en setClave(), el compilador analisa como true - nuestra salida;

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

" se supone que no deberia poner la clave en el System.out.println" - Mientras estamos aprendemos y practicamos, usamos mucho la función System.out.println para analizar la salida del código. Es una forma de analizar el resultado esperado en el desarrollo, pero si fuera un programa ya hecho, deberíamos quitar la llamada a la función por razones de seguridad al no exponer el valor de la contraseña del usuario.

Espero haberte quedado claro, cualquier duda estaremos aquí para ayudarte =)

¡Un saludo!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios