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

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

Clase Modelo Película

public class Pelicula {
    String nombre;
    int fechaLanzamiento;
    int duracionMinutos;
    boolean incluidoEnElPlan;
    double sumaDeLasEvaluaciones;
    int totalDeLasEvaluaciones;

    void muestraFichaTecnica(){
        System.out.println("El nombre de la película es: " + nombre);
        System.out.println("La fecha de lanzamiento fué en el año: " + fechaLanzamiento);
        System.out.println("Su duración en minutos es " + duracionMinutos + " minutos");
    }

    void evalua(double nota){
        sumaDeLasEvaluaciones += nota;
        totalDeLasEvaluaciones++;
    }

    double calculaMedia(){
        return sumaDeLasEvaluaciones / totalDeLasEvaluaciones;
    }
}

Objetos Principales de la Clase Película

public class Principal {
    public static void main(String[] args) {
        Pelicula miPelicula = new Pelicula();
        miPelicula.nombre = "Ex Machina";
        miPelicula.fechaLanzamiento = 2014;
        miPelicula.duracionMinutos = 110;

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

        System.out.println("Suma de las Evaluaciones: " + miPelicula.sumaDeLasEvaluaciones);
        System.out.println("Total de las Evaluaciones: " + miPelicula.totalDeLasEvaluaciones);
        System.out.println("Promedio de las Evaluaciones: " + miPelicula.calculaMedia());

        Pelicula otraPelicula = new Pelicula();
        otraPelicula.nombre = "Life of Pi";
        otraPelicula.fechaLanzamiento = 2012;
        otraPelicula.duracionMinutos = 127;

//        otraPelicula.muestraFichaTecnica();
    }
}
1 respuesta

Hola Vladimir, espero que estés bien

¡Tu código se ve muy bien! Has implementado correctamente el concepto de orientación a objetos en Java al crear la clase Pelicula con sus atributos y métodos. Además, en la clase Principal, estás creando instancias de Pelicula y utilizando sus métodos, lo cual es una excelente práctica.

Aquí hay algunas sugerencias y observaciones que podrían ayudarte a mejorar o expandir tu proyecto:

  1. Encapsulamiento: Aunque tu código funciona, es una buena práctica en programación orientada a objetos hacer que los atributos de la clase sean privados y proporcionar métodos públicos para acceder a ellos. Esto se conoce como encapsulamiento. Por ejemplo:

    public class Pelicula {
        private String nombre;
        private int fechaLanzamiento;
        private int duracionMinutos;
        private boolean incluidoEnElPlan;
        private double sumaDeLasEvaluaciones;
        private int totalDeLasEvaluaciones;
    
        // Métodos getter y setter para cada atributo
        public String getNombre() {
            return nombre;
        }
    
        public void setNombre(String nombre) {
            this.nombre = nombre;
        }
    
        // Continúa con los demás atributos...
    }
    
  2. Constructor: Puedes añadir un constructor a la clase Pelicula para inicializar los atributos al momento de crear un objeto. Esto hace que tu código sea más limpio y fácil de leer:

    public Pelicula(String nombre, int fechaLanzamiento, int duracionMinutos) {
        this.nombre = nombre;
        this.fechaLanzamiento = fechaLanzamiento;
        this.duracionMinutos = duracionMinutos;
    }
    

    Y luego, al crear una nueva película, podrías hacerlo así:

    Pelicula miPelicula = new Pelicula("Ex Machina", 2014, 110);
    
  3. Validación de datos: Considera agregar validaciones simples en los métodos evalua y calculaMedia para evitar divisiones por cero o notas inválidas.

Espero que estas sugerencias te sean útiles para seguir mejorando tus habilidades en Java y en programación orientada a objetos. ¡Sigue así!

Espero haber ayudado y buenos estudios!