CLASSE MAIN (PRINCIAPAL)
//Importando a outra clase que está em um pacote diferente que esse da classe main, que está no pacote raíz.
import cineverse.modelo.movie;
public class main {
public static void main(String[] args) {
movie filme1 = new movie();
//Usando a classe cineverse.modelo.movie instaciamos um objeto da classe, com uma nova variável que terá os atributos de filme
filme1.setNome("Forrest Gump");
filme1.setAnoLancamento(1994);
filme1.setDuracaoEmMinutos(142);
filme1.setDiretor("Robert Zameckis");
// Através do metodo exibeFichaTecnica buscamos a varável e ele já irá realizar a ação.
filme1.exibeFichaTecnica();
filme1.avaliaNota(10);
System.out.println("Média de avaliações: " + filme1.retornaMediaAvaliacao());
//Retorno do total de avaliações através do metodo get (criado pois o atributo é private na outra classe)
System.out.println("Total de avaliações: " + filme1.getTotalDeAvaliacoes());
}
}
CLASSE MOVIE (FILMES)
/*
Nesse caso colocamos essa classe num pacote, se caso quisermos acessar os atributos e métodos dessa classe por uma classe de
fora do pacote temos que torná-los públicos
*/
package cineverse.modelo;
public class movie {
//Criação de uma classe de filmes com atributos que todos os filmes irão ter.
private String nome;
private String diretor;
private int anoLancamento;
private boolean inclusoNoPlano;
//Quando usamos o prvate garantimos que o atributo não seja modificado ou lido diretamente dentro de outra classe
private double somaAvaliacao;
private int duracaoEmMinutos;
private int totalDeAvaliacoes;
//criação de getters e setters para manter as classses como privadas e elas serem acessíveis de outro lugar através de um metodo.
public void setNome(String nome) {
this.nome = nome;
}
public void setDiretor(String diretor) {
this.diretor = diretor;
}
public void setAnoLancamento(int anoLancamento) {
this.anoLancamento = anoLancamento;
}
public void setInclusoNoPlano(boolean inclusoNoPlano) {
this.inclusoNoPlano = inclusoNoPlano;
}
public void setDuracaoEmMinutos(int duracaoEmMinutos) {
this.duracaoEmMinutos = duracaoEmMinutos;
}
//Como definimos como private, usamos um metodo de get para pegar o total de avaliacoes e retornar através do return
public int getTotalDeAvaliacoes() {
return totalDeAvaliacoes;
}
public String getNome() {
return nome;
}
public String getDiretor() {
return diretor;
}
public int getAnoLancamento() {
return anoLancamento;
}
public boolean isInclusoNoPlano() {
return inclusoNoPlano;
}
public int getDuracaoEmMinutos() {
return duracaoEmMinutos;
}
//Após a criação dos atributos do filme em si, criamos uma ação, que é exibir a ficha técinca.
public void exibeFichaTecnica(){
System.out.println("Nome do filme: " + nome);
System.out.println("Duração em minutos: " + duracaoEmMinutos);
System.out.println("Ano de lançamento: " + anoLancamento);
System.out.println("Direção: " + diretor);
}
public void avaliaNota(double nota){
somaAvaliacao += nota;
totalDeAvaliacoes ++;
}
public double retornaMediaAvaliacao() {
return somaAvaliacao / totalDeAvaliacoes;
}
}