Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

11 Haga lo que hicimos en aula: encapsulando el proyecto

package com.oasb.Screen_Macht.modelosAplicacion;

public class PELICULA {

    // DECLARACION DE VARIABLES LLAMDOS TAMBIEN ATRIBUTOS SIN VALOR
    // TAMBIEN LLAMADAS REGLAS DE NEGOCIO

   private String nombre;
   private int fechaDeLanzamiento;    //cuando fue publicada la pelicula
   private int duracionEnMinutos;    //duracion de la pelicula
   private boolean incluidoEnPlan;  //SI esta incluido o NO en el plan de contrato

    //ESTAS  VARIABLES o METODOS SE CLASIFICAN COMO MODIFICADORES DE ACCESO o VICIBILIDAD, donde estos son variables privadas que solo los programadores
    // o personal autorizado puede modificar, por lo tanto, ciertas lineas de codigo se van a ENCAPSULAR
   private double sumaDeLasEvaluacionesNotas;  // variable que esta referida al METODO(funcion) evaluacion, donde se sumaran las notas o calificaciones del usuario
   private int acumuladoDeLasEvaluaciones;      // variable que servira para acumular las veces que el usuario evalua


//-------------------------------------------------------
    //En Java, un método setter se utiliza para asignar o modificar el valor de una variable privada de una clase. Es parte de las convenciones de encapsulación en la
    // programación orientada a objetos, donde las variables (o atributos) están protegidas mediante modificadores de acceso como private. Al usar métodos setters,
    // puedes controlar cómo se establecen los valores y agregar lógica adicional si es necesario.

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setFechaDeLanzamiento(int fechaDeLanzamiento) {
        this.fechaDeLanzamiento = fechaDeLanzamiento;
    }

    public void setDuracionEnMinutos(int duracionEnMinutos) {
        this.duracionEnMinutos = duracionEnMinutos;
    }

    public void setIncluidoEnPlan(boolean incluidoEnPlan) {
        this.incluidoEnPlan = incluidoEnPlan;
    }



    //------ENCAPSULAMIENTO POR MEDIO DEL METODO GET
    public int getAcumuladoDeLasEvaluaciones (){           //aqui se encapsula las variables dentro de un METOD (funsion)
        return acumuladoDeLasEvaluaciones;
    }

   public double getSumaDeLasEvaluacionesNotas () {
        return sumaDeLasEvaluacionesNotas;
    }


    public String getNombre() {
        return nombre;
    }

    public int getFechaDeLanzamiento() {
        return fechaDeLanzamiento;
    }

    public int getDuracionEnMinutos() {
        return duracionEnMinutos;
    }

    public boolean isIncluidoEnPlan() {
        return incluidoEnPlan;
    }


    //----- CREACION DE METODOS (FUNCIONES)
    //Un método de tipo void no devuelve ningún valor. Es útil cuando se realiza una acción, pero no se necesita enviar un resultado.
    //se crea un METODO (funcion) 1 de tipo void que no retornara nada especificamente y de momento y solo se quiere ejecutar
    // con la finalidad de no duplicar codigo en la pestaña PRINCIPAL
   public void muestraFichaTecnica() {
        System.out.println(" La Pelicula es: " + nombre + " \n Fecha de lanzamiento fue en el año:" + fechaDeLanzamiento
                + "\n Duracion: " + duracionEnMinutos + " minutos");
    }

    //se crea METODO (funcion) 2 para evaluar o calificar a la pelicula
   public void evaluacion(double nota) {                // dentro del parentesis se crea una variable interna llamada nota, esta va ser
        // digitada por el usuario
        acumuladoDeLasEvaluaciones++;                  //sirve para acumular e incremantar las veces que el usuario evalua una pelicula
        //es decir, se incrementa a si misma + 1

        sumaDeLasEvaluacionesNotas = sumaDeLasEvaluacionesNotas + nota;
    }

    // Un método de tipo double devuelve un valor de tipo decimal (punto flotante). Es útil cuando necesitas realizar cálculos que producen valores numéricos.
    // se crea un METODO (funcion) 3, para realizar la media de las evaluaciones por medio de una operacion matemantica

   public double calularLaMedia() {
        return sumaDeLasEvaluacionesNotas / acumuladoDeLasEvaluaciones; //EL return es indispesable por el tipo de dato

    }

}

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

2 respuestas

¡Hola Estudiante, espero que estés bien!

Vamos a revisar cómo encapsular correctamente tu proyecto en Java, siguiendo las prácticas de orientación a objetos.

Tu clase PELICULA ya está bien estructurada en términos de encapsulamiento. Aquí tienes algunos puntos clave y recomendaciones:

  1. Encapsulamiento:

    • Estás utilizando modificadores de acceso private para tus atributos, lo cual es correcto. Esto protege los datos de accesos externos no controlados.
    • Los métodos set y get permiten modificar y acceder a los atributos de una manera controlada.
  2. Métodos:

    • Los métodos set permiten asignar valores a los atributos privados.
    • Los métodos get permiten acceder a estos valores desde fuera de la clase.
    • Tienes métodos adicionales como muestraFichaTecnica, evaluacion, y calularLaMedia que proporcionan funcionalidades específicas.
  3. Uso en el código principal:

    • En tu clase principal, OTRAS_PELICULAS, estás creando una instancia de PELICULA y utilizando los métodos set para asignar valores.
    • Luego, llamas a muestraFichaTecnica para imprimir información sobre la película.
    • Estás evaluando la película con el método evaluacion y calculando el promedio con calularLaMedia.
  4. Mejoras posibles:

    • Asegúrate de validar los datos en los métodos set. Por ejemplo, podrías verificar que fechaDeLanzamiento sea razonable (no en el futuro) o que duracionEnMinutos sea positiva.
    • Podrías considerar manejar excepciones si se ingresan datos no válidos.

Tu implementación está bastante bien. Solo recuerda siempre validar y manejar posibles errores para hacer tu aplicación más robusta.

Espero haber ayudado y buenos estudios!

gracias por tus recomendaciones, las tomare en cuenta