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

2.1.9 Haga lo que hicimos en aula: proyecto con orientación a objetos

Hola que tal, les comparto el codigo de la actividad, agregue codigo a fin de que indique si la pelicula esta dentro del plan o no. Igual si tienen alguna sugerencia o mejora para el codigo se los agradeceria

Clase Pelicula

public class Pelicula {
    String nombre;
    int fechaDeLanzamiento;
    int duracionEnMinutos;
    boolean incluidoEnElPlan;
    double sumaDeEvaluaciones;
    int totalDeEvaluaciones;

    public void setIncluidoEnElPlan(boolean incluido) {
        this.incluidoEnElPlan = incluido;
    }
    // Creando un metodo - solo para ejecutar
    // void no retorna nada
    void muestraFichaTecnica(){
        System.out.println("El nombre de la pelicula es: " + nombre);
        System.out.println("Su fecha de lanzamiento es: " + fechaDeLanzamiento);
        System.out.println("Duracion en minutos: " + duracionEnMinutos);
        if (incluidoEnElPlan == true){
            System.out.println("La pelicula se encuentra en su plan, disfrutela");
        } else {
            System.out.println("Desafortunadamente la pelicula no se encuentra en su plan, adquiera el plan Plus para poder verla");
        }
        System.out.println("La media de evaluaciones de la pelicula es: " + calculaMedia());
    }

    void evalua(double nota){
        sumaDeEvaluaciones = sumaDeEvaluaciones + nota;
        totalDeEvaluaciones++;
    }

    // Metodo de tipo duble, porque debe retornar algun valor de tipo double
    double calculaMedia(){
        return sumaDeEvaluaciones / totalDeEvaluaciones;
    }
}

Clase Principal

public class Principal {
    public static void main(String[] args) {
        Pelicula miPelicula = new Pelicula();
        // Pelicula - Tipo de dato(creado por nosotros) / Nombre de variable /=/ new Pelicula() - Creando una nueva instancia, crea en la memoria un espacio para ese objeto

        miPelicula.nombre = "Encanto";
        miPelicula.fechaDeLanzamiento = 2021;
        miPelicula.duracionEnMinutos = 120;
        miPelicula.setIncluidoEnElPlan(false);

        miPelicula.evalua(10);
        miPelicula.evalua(10);
        miPelicula.muestraFichaTecnica();


//        System.out.println(miPelicula.sumaDeEvaluaciones);
//        System.out.println(miPelicula.totalDeEvaluaciones);
//        System.out.println(miPelicula.calculaMedia());


        Pelicula otraPelicula = new Pelicula();
        otraPelicula.nombre = "Matrix";
        otraPelicula.fechaDeLanzamiento = 1998;
        otraPelicula.duracionEnMinutos = 180;

//        otraPelicula.muestraFichaTecnica();

    }
}
1 respuesta

Hola Nelli, ¿cómo estás?

Gracias por compartir tu código. Parece que has hecho un buen trabajo implementando la orientación a objetos en tu proyecto. Aquí hay algunas sugerencias que podrían ayudarte a mejorar tu código:

  1. Encapsulamiento: Considera usar modificadores de acceso como private para tus atributos en la clase Pelicula. Esto ayudará a proteger los datos y a seguir el principio de encapsulamiento en la programación orientada a objetos. Luego, puedes proporcionar métodos get y set para acceder y modificar estos atributos.

    public class Pelicula {
        private String nombre;
        private int fechaDeLanzamiento;
        private int duracionEnMinutos;
        private boolean incluidoEnElPlan;
        private double sumaDeEvaluaciones;
        private int totalDeEvaluaciones;
    
        public String getNombre() {
            return nombre;
        }
    
        public void setNombre(String nombre) {
            this.nombre = nombre;
        }
    
        // Continúa con los otros atributos...
    }
    
  2. Manejo de excepciones: Al calcular la media de evaluaciones, podrías considerar manejar el caso en que totalDeEvaluaciones sea cero para evitar una división por cero.

    double calculaMedia(){
        if (totalDeEvaluaciones == 0) {
            return 0; // o algún valor que consideres apropiado
        }
        return sumaDeEvaluaciones / totalDeEvaluaciones;
    }
    
  3. Uso de this: Cuando asignas valores a los atributos dentro de la clase, puedes usar this para dejar claro que estás accediendo a los atributos del objeto actual.

    public void setIncluidoEnElPlan(boolean incluido) {
        this.incluidoEnElPlan = incluido;
    }
    

Con estos pequeños ajustes, tu código será más robusto y seguirá mejor los principios de la programación orientada a objetos. Espero que estas sugerencias te sean útiles.

¡Espero haber ayudado y buenos estudios!