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

Evidencias de Practica: Acceso y Nivel de Permiso

Hola, les comparti mi codigo de esta practica del curso. Sé que hay formas más sencillas y rapidas de resolver el problema, pero sigo con la intención de manejar tambien clases y paquetes, junto con sus instancias a manera de practica también.

Clase Acceso

package com.aluracursos.practicandojava.practicas;

public class Acceso {
    //atributos
    private boolean codigoCorrecto;
    private boolean nivelPermitido;

    //metodos
    public void setDatos (int codigo, int nivel){
        if (codigo == 2023){
            codigoCorrecto = true;
        }else {
            codigoCorrecto = false;
        }
        if (nivel >= 1 && nivel <= 3){
            nivelPermitido = true;
        }else {
            nivelPermitido = false;
        }
    }

    public void verificaAcceso() {
        if(codigoCorrecto && nivelPermitido) {
            System.out.println(" ACCESO PERMITIDO! Bienvenido al Sistema!");
        }else {
            System.out.println(" ACCESO DENEGADO, \n Motivo: ");
            if(codigoCorrecto == false){
                System.out.println("El codigo es INCORRECTO");
            }
            if (nivelPermitido == false){
                System.out.println("El Nivel de Permiso es INVALIDO");
            }
        }
    }

}

Clase Principal

package com.aluracursos.practicandojava.pruebas;

import com.aluracursos.practicandojava.practicas.*;

import java.util.Scanner;

public class Principal {
    public static void main(String[] args) {

        Scanner teclado = new Scanner(System.in);
        Acceso acceso = new Acceso();
        int codigo;
        int nivel;

        System.out.println("Ingresa el código de acceso: ");
        codigo = teclado.nextInt();
        System.out.println("Ingresa el nivel de permiso:");
        nivel = teclado.nextInt();
        acceso.setDatos(codigo,nivel);
        acceso.verificaAcceso();

    }
}

Gracias!

1 respuesta

Hola Elvia,

¡Gracias por compartir tu código! Parece que estás en el camino correcto al implementar la lógica para verificar el acceso basado en un código y un nivel de permiso. Aquí hay algunas sugerencias para mejorar y simplificar tu código:

  1. Uso de booleanos directamente: En lugar de usar if para establecer codigoCorrecto y nivelPermitido, puedes asignar directamente el resultado de la comparación a estas variables. Por ejemplo:

    codigoCorrecto = (codigo == 2023);
    nivelPermitido = (nivel >= 1 && nivel <= 3);
    
  2. Mensajes de salida: Tu código ya está configurado para mostrar mensajes claros si el acceso es denegado, lo cual es excelente. Asegúrate de que los mensajes sean claros y concisos para el usuario.

  3. Organización del código: Tu estructura actual está bien organizada. Sin embargo, siempre es una buena práctica comentar tu código para que tú y otros puedan entender rápidamente lo que hace cada parte.

Aquí tienes cómo se vería tu código con las sugerencias implementadas:

package com.aluracursos.practicandojava.practicas;

public class Acceso {
    // atributos
    private boolean codigoCorrecto;
    private boolean nivelPermitido;

    // métodos
    public void setDatos(int codigo, int nivel) {
        codigoCorrecto = (codigo == 2023);
        nivelPermitido = (nivel >= 1 && nivel <= 3);
    }

    public void verificaAcceso() {
        if (codigoCorrecto && nivelPermitido) {
            System.out.println("ACCESO PERMITIDO! Bienvenido al Sistema!");
        } else {
            System.out.println("ACCESO DENEGADO, \nMotivo:");
            if (!codigoCorrecto) {
                System.out.println("El código es INCORRECTO");
            }
            if (!nivelPermitido) {
                System.out.println("El Nivel de Permiso es INVÁLIDO");
            }
        }
    }
}

Espero que estas sugerencias te sean útiles y te ayuden a seguir mejorando tus habilidades en Java. ¡Sigue practicando y explorando nuevas formas de optimizar tu código!

Espero haber ayudado y buenos estudios!