Olá, Juliano! Tudo bem?
Ótimo código, parabéns! Deixo apenas algumas sugestões:
Remover o método main
da classe Filme
: A classe Filme
deve ser responsável apenas pelos atributos e métodos relacionados ao filme, dessa forma, o método main
deve estar na classe Principal
.
Ajustar a classe Principal
: A classe Principal
deve criar uma instância de Filme
, preencher seus atributos e chamar os métodos necessários.
Deixando o nosso código da seguinte maneira:
// Classe Principal
public class Principal {
public static void main(String[] args) {
Filme meuFilme = new Filme();
meuFilme.nome = "O Poderoso Chefão";
meuFilme.codigoFilme = 1;
meuFilme.anoDeLancamento = 1972;
meuFilme.duracaoEmMinutos = 180;
meuFilme.atorPrincipal = "Al Pacino";
meuFilme.atorSecundario = "Marlon Brando";
meuFilme.somaAvaliacoes = 0;
meuFilme.incluido = true;
meuFilme.exibeFichaTecnica();
meuFilme.avalia(5);
meuFilme.avalia(5);
meuFilme.avalia(5);
meuFilme.avalia(5);
System.out.println("Soma das avaliações: " + meuFilme.somaAvaliacoes);
System.out.println("Total de avaliações recebidas: " + meuFilme.totalDeAvaliacoes);
System.out.println("A média das avaliações é: " + meuFilme.mediaAvaliacoes());
meuFilme.verFilme();
}
}
// Classe Filme
import java.util.Scanner;
public class Filme {
String nome;
int codigoFilme;
int anoDeLancamento;
boolean incluido;
double somaAvaliacoes;
int totalDeAvaliacoes;
int duracaoEmMinutos;
String atorPrincipal;
String atorSecundario;
int acessoNivel1 = 2501;
int acessoNivel2 = 0;
void exibeFichaTecnica() {
System.out.println("Nome do filme: " + nome);
System.out.println("Código do filme: " + codigoFilme);
System.out.println("Ano do lançamento: " + anoDeLancamento);
System.out.println("Tempo de Duração: " + duracaoEmMinutos + " minutos");
System.out.println("Ator Principal: " + atorPrincipal);
System.out.println("Ator Secundário: " + atorSecundario);
}
void avalia(double nota) {
somaAvaliacoes += nota;
totalDeAvaliacoes++;
}
double mediaAvaliacoes() {
return somaAvaliacoes / totalDeAvaliacoes;
}
void verFilme() {
Scanner entrada = new Scanner(System.in);
System.out.println("Digite seu código de acesso de 4 dígitos\ncodigo: ");
int acesso = entrada.nextInt();
if (acesso <= 2500) {
System.out.println("**** Acesso aos filmes código 01 ******");
} else {
System.out.println("**** Acesso aos filmes código 02 ******");
}
entrada.close(); // Fechar o Scanner
}
}
Com essas mudanças, nosso código ficará mais organizado e aderente aos princípios de orientação a objetos!
Espero ter ajudado!
Um forte abraço e bons estudos!