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

[Dúvida]Sobrecarga de método e argumentos

Uma duvida que tive aqui sobre a sobrecarga é que na aula aprendemos a escrever dessa forma:

   public void inclui(Filme f){
        tempoTotal += f.getDuracaoEmMinutos();
    }
    public void inclui(Serie s){
        tempoTotal += s.getDuracaoEmMinutos();
    }
    

Mas esse método não poderia ser escrito dessa forma?

public void inclui(Filme f, Serie s){
        tempoTotal += f.getDuracaoEmMinutos() + s.getDuracaoEmMinutos();
    }

O que eu entendo de diferença entre a sugestão da aula X o que pensei e que da aula eu consigo trabalhar com a inclusão de minutos que vão ser somadados tanto de série quanto de filme de forma individuais, e no meu exemplo eu tenho que receber esses dois valores pelo get.

Pensando que talvez nem toda pessoa que assista um filme assita uma série ao mesmo tempo o meu método pode ter um erro sempre esperando o valor de série.

Uma outra coisa que notei e que antes os valores do meu argumento geralmente era uma variável local do método, agora foi usado a Classe como argumento e assim podemos acessar todos atributos ou métodos públicos certo? Essa é a forma mais comum de uso ou cada caso tem sua individualidade?

1 resposta
solução!

Ola, Matheus!

Sua dúvida sobre sobrecarga de métodos é muito relevante e demonstra uma boa compreensão dos conceitos de Orientação a Objetos. Vamos abordar os pontos que você levantou.

  1. Sobre a sobrecarga: A sobrecarga de métodos permite que você tenha múltiplas versões de um método com o mesmo nome, mas com diferentes parâmetros. No seu exemplo original, ao ter dois métodos inclui(Filme f) e inclui(Serie s), você consegue adicionar a duração de um filme ou de uma série de forma individual. Isso é útil porque permite que o código seja mais flexível e específico, dependendo do que o usuário deseja adicionar.

    No seu exemplo sugerido, inclui(Filme f, Serie s), você estaria forçando a inclusão de ambos os tipos ao mesmo tempo, o que pode não ser desejável. Como você mencionou, nem todos os usuários vão querer adicionar um filme e uma série simultaneamente. Portanto, manter os métodos separados é uma abordagem mais versátil.

  2. Uso de argumentos de classe: Você está absolutamente correto ao observar que, usando classes como argumentos, você pode acessar todos os atributos e métodos públicos desses objetos. Essa é uma prática comum e recomendada na Orientação a Objetos, pois permite que você trabalhe com as características específicas de cada objeto de forma organizada.

    Por exemplo, ao ter o método inclui(Filme f), você pode facilmente acessar f.getDuracaoEmMinutos() para obter a duração específica do filme. Essa abordagem é especialmente útil quando você tem objetos que possuem comportamentos ou características diferentes, mas que você deseja manipular de forma semelhante em um contexto.

Em resumo, suas observações estão corretas e refletem um bom entendimento de como a sobrecarga de métodos e o uso de classes podem ser aplicados. Continue explorando essas ideias e experimentando com o código!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!