2
respostas

Dúvida Ref Desafio

E ai pesssoal? BLZ? tenho uma duvida aqui...considerando como exemplo o codigo abaixo do desafio, ele tem que ser lançado seprado? ou seja, uma parte no arquivo principal e e outra parte criar mais um arquivo com esta classe musica , é isso ? e para rodar comoo faz? havera partes ai que vai sobre escrever no arquivo principal ? para mim ficou confuso

//Classe Musica
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++;
    }

    double pegaMedia() {
        return somaDasAvaliacoes / numAvaliacoes;
    }
}

//Classe Principal arq existente 
public class Principal {
    public static void main(String[] args) {
        Musica minhaMusica = new Musica();

        minhaMusica.titulo = "Nome da Música";
        minhaMusica.artista = "Nome do Artista";
        minhaMusica.anoLancamento = 2023;

        minhaMusica.exibeFichaTecnica();

        minhaMusica.avalia(4.5);
        minhaMusica.avalia(3.8);
        minhaMusica.avalia(5.0);

        double mediaAvaliacoes = minhaMusica.pegaMedia();
        System.out.println("Média das avaliações: " + mediaAvaliacoes);
    }
}
2 respostas

Oi Claudio! Tudo bem?

É exatamente isso! Precisamos de uma classe Principal e uma classe Musica. Na hora de rodar, você roda somente a classe que contém o método main(), que nesse caso é a classe Principal. Como estamos usando a classe Musica dentro do método main, e utilizando os imports corretamente, a classe Principal vai entender que precisa da classe Musica e vai procurar por ela. Então, ela encontrará a classe Musica e irá utilizá-la, criando os objetos e rodando o seu código.

E aí, nesses momentos dizemos que o código não está sendo sobrescrito, mas sim chamado: a classe Principal chama a classe Musica.

Espero ter ajudado! Qualquer dúvida, estou à disposição.

Abraços e bons estudos!

Nossa ainda esta muito confuso pra mim... continuando, quando chego no item desafio , meu arquivo vai ter um montao de classes tipo musica, aluno, etc e uma principal, e dentro da prinicipal um monte de sub classes... desse modo :?????

public static void main(String[] args) {
        Musica minhaMusica = new Musica();

        minhaMusica.titulo = "Nome da Música";
        minhaMusica.artista = "Nome do Artista";
        minhaMusica.anoLancamento = 2023;

        minhaMusica.exibeFichaTecnica();

        minhaMusica.avalia(4.5);
        minhaMusica.avalia(3.8);
        minhaMusica.avalia(5.0);

        double mediaAvaliacoes = minhaMusica.pegaMedia();
        System.out.println("Média das avaliações: " + mediaAvaliacoes);
    }
public class Aluno {
    // Atributos da classe Aluno
    private String nome;
    private int idade;

    // Construtor da classe Aluno
    public Aluno(String nome, int idade) {
        this.nome = nome;
        this.idade = idade;
    }

    // Método para exibir as informações do aluno
    public void exibeInformacoes() {
        System.out.println("Nome: " + nome);
        System.out.println("Idade: " + idade + " anos");
    }

    // Getters e Setters
    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }
}

public class Main {
    public static void main(String[] args) {
        Carro meuCarro = new Carro("Honda Civic", 2015, "Preto");
        meuCarro.exibeFichaTecnica();
        int idadeDoCarro = meuCarro.calculaIdade(2024); // Supondo que o ano atual seja 2024
        System.out.println("Idade do carro: " + idadeDoCarro + " anos");
    }
}
public class Carro {
    // Atributos da classe Carro
    private String modelo;
    private int ano;
    private String cor;

    // Construtor da classe Carro
    public Carro(String modelo, int ano, String cor) {
        this.modelo = modelo;
        this.ano = ano;
        this.cor = cor;
    }

    // Método para exibir a ficha técnica do carro
    public void exibeFichaTecnica() {
        System.out.println("Modelo: " + modelo);
        System.out.println("Ano: " + ano);
        System.out.println("Cor: " + cor);
    }

    // Método para calcular a idade do carro
    public int calculaIdade(int anoAtual) {
        return anoAtual - ano;
    }

    // Getters e Setters
    public String getModelo() {
        return modelo;
    }

    public void setModelo(String modelo) {
        this.modelo = modelo;
    }

    public int getAno() {
        return ano;
    }

    public void setAno(int ano) {
        this.ano = ano;
    }

    public String getCor() {
        return cor;
    }

    public void setCor(String cor) {
        this.cor = cor;
    }
}