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
}
}