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: Compatibilidad de Donante de Sangre

Hola, les comparto mi codigo de esta practica del curso. Sé que hay formas más sencillas de abordar el problema, pero queria aprovechar para practicar tambien el uso de clases e instansias.

Clase Donante

package com.aluracursos.practicandojava.practicas;

public class Donante {
    //atributos
    private boolean edadCompatible;
    private boolean pesoCompatible;

    //metodos
    public void setDatos(int edad, int peso){
        if(edad >= 18 && edad <=65){
            edadCompatible = true;
        }
        else {
            edadCompatible = false;
        }

        if(peso >= 50){
            pesoCompatible = true;
        }else {
            pesoCompatible = false;
        }
    }

    public void compatible () {
        if(edadCompatible && pesoCompatible){
            System.out.println("El donante es compatible para Donar, Gracias!");
        } else{
            System.out.println("El donante NO es compatible.");
            System.out.println("Motivo: ");
            if (edadCompatible == false){
                System.out.println("Debe tener entre 18 y 65 años de edad.");
            }
            if (pesoCompatible == false) {
                System.out.println("Debe pesar arriba de 50 kg.");
            }
        }
    }
}

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);
        
        //Compatibilidad para Donar sangre
        Donante donante = new Donante();
        int peso;
        int edad;

        System.out.println("Ingresa la edad del donante: ");
        edad = teclado.nextInt();
        System.out.println("Ingresa el peso del donante: ");
        peso = teclado.nextInt();
        donante.setDatos(edad,peso);
        donante.compatible();

    }
}

Gracias!

1 respuesta

Hola Elvia,

¡Gracias por compartir tu código! Has hecho un buen trabajo al estructurar tu programa utilizando clases e instancias, lo cual es una excelente manera de practicar la programación orientada a objetos. Tu enfoque es correcto y cumple con los requisitos del ejercicio.

Aquí hay algunas sugerencias que podrían simplificar un poco tu código:

  1. Uso de Operadores Lógicos: Puedes simplificar las asignaciones de edadCompatible y pesoCompatible utilizando directamente la evaluación de la condición. Por ejemplo:

    public void setDatos(int edad, int peso){
        edadCompatible = (edad >= 18 && edad <= 65);
        pesoCompatible = (peso >= 50);
    }
    
  2. Mensajes de Salida: Tu método compatible() ya está bien estructurado para mostrar los mensajes adecuados dependiendo de los criterios que no se cumplen. Sin embargo, podrías considerar usar else if para evitar comprobar condiciones innecesarias una vez que una de ellas ya es falsa. Aunque, en este caso, no es estrictamente necesario ya que ambas condiciones pueden fallar independientemente.

  3. Lectura de Datos: Todo parece estar en orden en la clase Principal. Asegúrate de manejar posibles excepciones al leer datos del usuario, como entradas no válidas, para hacer tu programa más robusto.

Tu código ya está bastante claro y cumple con lo que se espera del ejercicio. Continúa practicando y experimentando con diferentes enfoques, ya que la práctica es la mejor manera de mejorar tus habilidades de programación.

Espero haber ayudado y ¡buenos estudios!