1
resposta

[Projeto] Projeto orientação objeto

 Classe Filme.java
java
Copiar
Editar
public class Filme {

    String nome;
    int anoDeLancamento;
    int duracaoEmMinutos;
    boolean incluidoNoPlano;
    double somaDasAvaliacoes;
    int totalDeAvaliacoes;

    void exibeFichaTecnica() {
        System.out.println("Filme: " + nome);
        System.out.println("Ano de Lançamento: " + anoDeLancamento);
        System.out.println("Duração: " + duracaoEmMinutos + " minutos");
        System.out.println("Incluído no plano? " + (incluidoNoPlano ? "Sim" : "Não"));
    }

    void avalia(double nota) {
        somaDasAvaliacoes += nota;
        totalDeAvaliacoes++;
    }

    double pegaMedia() {
        if (totalDeAvaliacoes == 0) {
            return 0;
        }
        return somaDasAvaliacoes / totalDeAvaliacoes;
    }
}
 Classe Principal.java (com o método main)
java
Copiar
Editar
public class Principal {
    public static void main(String[] args) {
        Filme meuFilme = new Filme();
        meuFilme.nome = "A Origem";
        meuFilme.anoDeLancamento = 2010;
        meuFilme.duracaoEmMinutos = 148;
        meuFilme.incluidoNoPlano = true;

        meuFilme.exibeFichaTecnica();

        meuFilme.avalia(8.5);
        meuFilme.avalia(9.0);
        meuFilme.avalia(7.5);

        System.out.println("Média de avaliações: " + meuFilme.pegaMedia());
    }
}
1 resposta

Oi, Izabela! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu projeto ficou muito bem estruturado! A forma como você organizou os métodos dentro da classe Filme facilita a reutilização e o entendimento da lógica. A exibição da ficha técnica e o cálculo da média de avaliações demonstram que você aplicou bem os conceitos de encapsulamento e reutilização de código.

Uma dica interessante para o futuro é usar o método toString() para personalizar a forma como o objeto é exibido ao ser impresso. Isso pode deixar seu código mais limpo:


@Override
public String toString() {
    return "Filme: " + nome + " (" + anoDeLancamento + "), " +
           "Duração: " + duracaoEmMinutos + " min, " +
           "Incluído no plano? " + (incluidoNoPlano ? "Sim" : "Nao");
}

Esse método retorna uma representação em texto do objeto, que pode ser impressa diretamente com System.out.println(meuFilme);.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!