Olá caros colegas desenvolvedores, hoje conversaremos sobre métodos em Java. Tentaremos de forma simples e direta compreender como os métodos funcionam e que papel eles desempenham dentro do Java. Em síntese, os métodos representam o comportamento de um objeto.
Na postagem “INSTÂNCIA, ATRIBUTOS E REFERÊNCIAS”, falamos sobre os atributos que são as características de um objeto. Lá explicamos que para que um objeto exista na memória do computador precisamos obrigatoriamente instanciá-lo. E por fim guardá-lo em uma variável que é, em orientação a objetos entendida como uma referência ao objeto.
SETTERS E GETTERS
Assim, na sequência desse estudo em “MÉTODOS SETTERS E GETTERS”, conversamos sobre a importância do método get. Que é um método que não recebe parâmetro, mas, porém, retorna um valor. O método get é chamado por exemplo, quando queremos executar uma função, como imprimir uma mensagem na tela ou um relatório.
Ao passo que o método set, é o meio por qual atribuímos um valor a um atributo do objeto. Este método por sua vez recebe como parâmetro um dado do mesmo tipo do atributo em questão e não possui retorno.
Mas os métodos sobre os quais falaremos hoje são aqueles que adicionam uma funcionalidade ao objeto. E que tem como finalidade representar um comportamento possível do objeto. Dessa forma, cada método deve necessariamente pertencer a uma classe, e ter um escopo definido.
O método qual vamos implementar calcula a média das notas inseridas. Neste contexto, as variáveis bem como os parâmetros, que são opcionais, e que são passados na chamada do método, são acessíveis apenas dentro deste escopo. Para serem acessíveis fora do escopo do método e ter acessibilidade em toda a classe eles precisam ser globais.
Um método pode retornar um tipo primitivo ou uma classe. Entretanto, quando o método especifica que nenhum valor será retornado, então neste caso o tipo de retorno é void.
MÉTODO MAIN
Antes de partimos para a prática, uma curiosidade que por sinal vai ilustrar o conceito de métodos. Se você nos acompanha por aqui já deverá ter observado. Em dados momentos nos referimos ao local onde acontece a execução do programa como método principal, autoexecutável ou apenas método main. Enfim, o main é um método especial chamado de main(String[]).
O método main(String[]), possui acesso público, não possui retorno (void) e recebe como parâmetro um array de tipo String. Ele é obrigatoriamente público e não possui uma estrutura fixa. Entretanto a ausência deste método implicará em um erro que apresentará ao usuário a seguinte mensagem “Exception in the thread ‘main’ java.langNoSuchMethodError: main”.
MÉTODO CALCULA MÉDIA
Legal né. Agora vamos finalmente a implementação do método calculaMedia, lembrando sempre da técnica de Camel Case. Se você está chegando aqui agora, esta é uma série de tutoriais sobre orientação a objetos. Assim sendo, para guiar nossos estudos criamos uma classe Alunos(), qual definimos atributos para os quais geramos os métodos getters e setters.
Agora como passo inicial para escrevermos nosso primeiro método criaremos quatro atributos do tipo double para receber as notas do aluno. Gere também para eles os métodos getters e setters.
private double nota01;
O método calculaMedia será bem simples, ele vai receber o valor das quatro notas, somá-las, dividir por quatro e retornar o resultado desta operação. Não será necessário criar uma classe distinta somente para a implementação deste método. Visto que é um método bem simples e direto e que está diretamente relacionado ao aluno.
Responda à pergunta: o método calculaMedia deverá ter acessibilidade fora da classe? Se sim, que tipo de visibilidade deverá ter, isto é, qual modificador de acesso deveremos utilizar? Já informamos que ele deverá retornar um dado, e será um dado primitivo, assim sendo, que tipo de dado devemos especificar para o retorno?
Uma das obrigações do método calculaMedia é obter o valor das quatro notas para então proceder com o cálculo. Isto é, ele precisa de alguma forma resgatar este valor. E como ele fará isso? Espero que tenha se atentado para a escolha dos verbos, “obter” e “resgatar”. Uma vez que sempre que estes verbos foram empregados estavam no contexto do método get.
Toda a explicação acima é para explicitar que o nome do método deverá ser precedido pela palavra reservada get, getcalculaMedia(). O uso do get já aponta que não haverá parâmetros. Assim, para retornar o resultado da operação implementaremos a seguinte linha de código:
IMPLEMENTAÇÃO
return (nota01 + nota02 + nota03 + nota04) / 4;
Agora precisamos atribuir as notas, para isso vamos ao método main para “setar” as notas. Ou seja, atribuir um valor específico para cada atributo nota.
aluno01.setNota01(90.15);
aluno01.setNota02(70.35);
aluno01.setNota03(55.55);
aluno01.setNota04(50.75);
O que queremos agora é ver o resultado deste cálculo impresso na tela. É simples, vamos recorrer novamente ao get.
System.out.println(“ MÉDIA DAS NOTAS” + aluno01.getcalculaMedia());
Em resumo, com getcalculaMedia estamos chamando o método calculaMedia(), assim, tudo o que está dentro do método será executado, e o que será apresentado é o que determinamos como retorno, no caso, o resultado do cálculo da média.
EM POUCAS PALAVRAS
Aprendemos hoje a escrever métodos que implementam uma funcionalidade ao objeto. E o fizemos associando a aprendizagem deste tutorial com a implementação dos métodos getters e setters visto no tutorial passado.
É por este motivo que todos os dias você deverá ser consistente em seu aprendizado. Além de seguir uma ordem progressiva, que é como fazemos aqui no curso de FORMAÇÃO JAVA WEB. Não siga para o próximo tutorial, não siga para a próxima aula sem ter compreendido o tema que estiver estudando no momento.
IMPORTANTE: Em alguns casos o método empregado para alcançarmos o objetivo proposto cumpre primeiro o papel pedagógico. Dessa forma, e, principalmente neste momento, buscamos auxiliar o iniciante em programação a compreender sem complexidade e excessos de “perfumaria”.
Avançando gradativamente, no momento certo será apresentado um novo e às vezes mais complexo modo de alcançarmos o mesmo objetivo. P orém como profissionalmente iremos aplicar em nossas carreiras.