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

[Proyecto] con orientación a objetos

Pelicula.java

public class Pelicula {
    String nombre;
    int fechaDeLanzamiento;
    int duracionEnMinutos;
    boolean incluidoEnElPlan;
    double sumaDeLasEvaluaciones;
    int totalDeLasEvaluaciones;



    void muestraFichaTecnica(){
        System.out.printf("""
                El nombre de la película es: %s
                Se lanzó en: %d
                Su duración es: %d minutos
                """, nombre, fechaDeLanzamiento, duracionEnMinutos);
    }

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

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

Principal.java

public class Principal {
    public static void main(String[] args) {
        Pelicula pelicula = new Pelicula();
        pelicula.nombre = "Harry Potter";
        pelicula.fechaDeLanzamiento = 2002;
        pelicula.duracionEnMinutos = 185;

        pelicula.muestraFichaTecnica();
        pelicula.evalua(10);
        pelicula.evalua(8);
        pelicula.evalua(5);

        System.out.println(pelicula.sumaDeLasEvaluaciones);
        System.out.println(pelicula.totalDeLasEvaluaciones);
        System.out.printf("%.2f",pelicula.calculaMedia());
    }
}
1 respuesta

¡Hola Estudiante, espero que estés bien!

Parece que estás trabajando en un proyecto de orientación a objetos en Java y ya has avanzado bastante. Tu código para la clase Pelicula y la clase Principal se ve bien y sigue las instrucciones de la actividad. Aquí te dejo algunos comentarios y sugerencias:

  1. Encapsulamiento: Aunque tu código funciona, es una buena práctica en Java usar modificadores de acceso para proteger los atributos de la clase. Por ejemplo, puedes declarar los atributos como private y luego usar métodos get y set para acceder y modificar estos valores. Esto ayuda a mantener la integridad de los datos. Por ejemplo:

    public class Pelicula {
        private String nombre;
        private int fechaDeLanzamiento;
        private int duracionEnMinutos;
        private boolean incluidoEnElPlan;
        private double sumaDeLasEvaluaciones;
        private int totalDeLasEvaluaciones;
    
        // Métodos get y set 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: Considera agregar un constructor a tu clase Pelicula para inicializar los atributos cuando crees un nuevo objeto. Esto puede hacer tu código más limpio y fácil de usar:

    public Pelicula(String nombre, int fechaDeLanzamiento, int duracionEnMinutos) {
        this.nombre = nombre;
        this.fechaDeLanzamiento = fechaDeLanzamiento;
        this.duracionEnMinutos = duracionEnMinutos;
        this.sumaDeLasEvaluaciones = 0;
        this.totalDeLasEvaluaciones = 0;
    }
    
  3. Uso del método main: En tu clase Principal, estás creando un objeto Pelicula y utilizando sus métodos correctamente. Si decides implementar el constructor, puedes crear el objeto de esta manera:

    public class Principal {
        public static void main(String[] args) {
            Pelicula pelicula = new Pelicula("Harry Potter", 2002, 185);
    
            pelicula.muestraFichaTecnica();
            pelicula.evalua(10);
            pelicula.evalua(8);
            pelicula.evalua(5);
    
            System.out.println(pelicula.sumaDeLasEvaluaciones);
            System.out.println(pelicula.totalDeLasEvaluaciones);
            System.out.printf("%.2f", pelicula.calculaMedia());
        }
    }
    

Espero que estas sugerencias te sean útiles para mejorar tu proyecto. ¡Espero haber ayudado y buenos estudios!