Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] incremento de variáveis nos métodos de orientação a objetos

Porque as variáveis somaDasAvaliacoes e numAvaliacoes não precisaram ser iniciadas com valor 0 como no loop for ?

public class Musica {
    String titulo;
    String artista;
    int anoLancamento;
    double somaDasAvaliacoes;
    int numAvaliacoes;

    void exibeFichaTecnica() {
        System.out.println("Título da música: " + titulo);
        System.out.println("Artista: " + artista);
        System.out.println("Ano de lançamento: " + anoLancamento);
    }

    void avalia(double nota) {
        somaDasAvaliacoes += nota;
        numAvaliacoes++;
    }
1 resposta
solução!

Olá, Rafael, como vai?

Em Java existe uma diferença importante entre variáveis de instância (atributos da classe) e variáveis locais (criadas dentro de métodos ou estruturas como for). Os atributos da classe recebem automaticamente um valor padrão quando um objeto é instanciado, enquanto variáveis locais precisam ser inicializadas manualmente antes de serem utilizadas.

No seu exemplo, somaDasAvaliacoes e numAvaliacoes são atributos da classe Musica. Quando um objeto dessa classe é criado, o Java atribui valores padrão a esses atributos. Para tipos numéricos inteiros como int, o valor padrão é 0. Para tipos numéricos decimais como double, o valor padrão é 0.0. Por isso não foi necessário escrever explicitamente = 0.

Essa regra existe porque o compilador precisa garantir que variáveis locais tenham um valor definido antes de serem utilizadas, enquanto atributos de objeto já são inicializados automaticamente durante a criação da instância.

Espero ter ajudado.

Siga firme nos seus estudos e conte com o fórum sempre que precisar.

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado