Olá Pessoal, tudo bom?
Hoje iremos continuar falando sobre Orientação a Objetos e Java Básico, com a descrição sobre os comportamentos dos objetos mais precisamente através de seus métodos. Assim no artigo de hoje iremos descrever os conceitos básicos sobre métodos. Se você perdeu algum dos artigos anteriores, procure no site por “OO + Java Básico:”.
Comportamento de um Objeto
Conforme descrito no primeiro artigo, objetos encapsulam estado e comportamento em um único lugar. Conforme os artigos foram sendo escritos, foi visto que estado de um objeto é o conteúdo que está presente em um determinando instante nos atributos deste objeto.
O comportamento de um objeto é como este age, a partir do conteúdo de seus atributos, em uma determinada situação. Se um comportamento não precisar de um atributo, sempre possuir o mesmo efeito, será um comportamento genérico, praticamente inútil. Assim todo comportamento útil depende dos valores que estão definidos nos atributos. Confuso?
Vamos pensar na seguinte casa que foi definida no segundo artigo:
1 2 3 4 5 6 7 8 |
public class Casa { private String localizacao; private int qtdQuartos; private int qtdBanheiros; private String dadosProprietarioAtual; private String tipoNegocio; private int qtdVeiculosGaragem; } |
Se temos um comportamento que indique se uma instancia dessa classe Casa possui Aluguel como tipoNegocio, isso é útil para ignorarmos outras instancias que não possuam esse tipoNegocio. Tornando assim o comportamento útil. Para definir um comportamento na linguagem Java é utilizado um conceito chamado de método.
Assim para definir o comportamento da obtenção do valor que existe em tipoNegocio, foi definido o método getTipoNegocio(). Para inserir a informação dentro do atributo tipoNegocio, foi definido o método setTipoNegocio(), ambos os métodos estão descritos nas linhas destacadas:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public class Casa { private String localizacao; private int qtdQuartos; private int qtdBanheiros; private String dadosProprietarioAtual; private String tipoNegocio; private int qtdVeiculosGaragem; public String getTipoNegocio(){ return this.tipoNegocio; } public void setTipoNegocio(String tipoNegocio){ this.tipoNegocio = tipoNegocio; } } |
Padrões de Declaração
Todo método dentro do Java segue um determinado padrão ou formato. Corriqueiramente esse formato é chamado de assinatura do método. O padrão de declaração básico pode ser observado no método setTipoNegocio():
1 2 3 |
public void setTipoNegocio(String tipoNegocio){ this.tipoNegocio = tipoNegocio; } |
- Modificador de Acesso do método (public): Indica se esse método estará disponível para visualização de qualquer classe. Mais detalhes sobre modificadores de acesso favor ler o seguinte artigo.
- Tipo do retorno do método (void): Esse é um campo obrigatório. Indica qual é o tipo de valor que será retornado pelo método. No caso do exemplo, void, essa é uma palavra chave do Java que indica que nenhum valor deverá ser retornado.
- Nome do método (setTipoNegocio): Indica o nome do metodo. Esse preferivelmente não deve conter acentos e deve seguir o formato camelCase, primeira letra minuscula e letras iniciais de outras palavras maiúsculas.
- Parenteses: São obrigatórios, mesmo que o método não exija nenhum parâmetro. Os parenteses definem o inicio e fim da lista de parâmetros do método.
- Lista de Parâmetros do método (String tipoNegocio): Indica a lista de parâmetros (valores), que são passados para o método. Não há limite para a quantidade de parâmetros que podem ser passados para um método. Mas quanto maior a quantidade, mais ilegível pode o método ficar.
- Tipo Java do Parâmetro (String): Indica qual é o tipo Java de um parâmetro. Pode ser String, int, boolean ou qualquer classe declarada no Java.
- nome do Parâmetro (tipoNegocio): Indica o nome do parâmetro. Esse preferivelmente não deve conter acentos e deve seguir o formato camelCase, primeira letra minuscula e letras iniciais de outras palavras maiúsculas.
- Chaves: São obrigatórios, mesmo que o método não exija um valor de retorno. As chaves definem o inicio e o fim do corpo de um método.
- Corpo do método (this.tipoNegocio = tipoNegocio;): O corpo do método propriamente dito. Aqui é que estão as linhas que o método irá executar. No caso do exemplo, obtemos o parâmetro, tipoNegocio e atribuímos o seu “valor” ao atributo tipoNegocio da instância de Casa.
Descrito como é o padrão de declaração de um método na linguagem Java, abaixo irei descrever alguns pontos importantes de uma declaração de um método.
Lista de Parâmetros
Um método pode conter zero, um ou muito parâmetros. Caso não tenha nenhum parâmetro, os parenteses que limitam a lista devem ser inseridos. Esses são obrigatórios, independente da quantidade de parâmetros existentes. Quando existe ao menos um parâmetro, este deve ser declarado no formato TipoParametro nomeParametro, com as restrições citadas acima.
Caso existam mais de um parâmetro na lista, os parâmetros deverão ser separados por uma virgula, como no exemplo abaixo:
1 2 3 |
public void setDataHora(String data, String hora){ //Codigo que insere a data e hora dentro da instancia da classe } |
Retorno de um método
Um método pode retornar uma instância pertencente a algum tipo criado da linguagem Java. Esse tipo criado pode ser uma String, um int ou ainda uma classe criada no projeto, por exemplo, Casa. Senão existe a possibilidade de retorno, ou o retorno não é necessário, é utilizada a palavra chave void, indicando para a linguagem Java não retorna informação nenhuma.
Não retornar nenhuma informação, significa que o método não faz nada? Não. Isso significa que o método realiza um determinado processamento de informações, mas que não existe a necessidade de informar o usuário as mudanças que ocorreram aos atributos ou outras instâncias nesse processamento.
Para retornar uma informação, é utilizada a palavra chave “return” com o atributo ou valor a ser retornado logo após, como está descrito no método getTipoNegocio(); Caso o retorno de um método esteja marcado como String e por algum acaso for retornado um int, ocorrerá um erro de compilação, ou seja, aparecerá um ponto vermelho em seu código, indicando que aquela linha está com problemas.
Um método pode conter mais de um retorno, ou seja, mais de uma linha de código com a palavra chave return. Mas a palavra return deverá estar na última linha possível daquele bloco de código:
1 2 3 4 5 6 |
public boolean isTipoNegocioAluguel(){ if(this.tipoNegocio == "aluguel"){ return true; } return false; } |
No exemplo acima, foi criado o método isTipoNegocioAluguel, que retorna um tipo primitivo boolean. Esse método tem a função de verificar se o tipoNegocio é aluguel, se for deverá retornar verdadeiro, true. Senão retornará false, falso. É possível perceber que a execução de um código não continua após a linha do return. Ou seja, quando chegou na linha return true; o método retornou para o código Java que chamou o método isTipoNegócioAluguel e não continuou a execução caindo na linha do fecha chaves e nem na linha do return false;
Caso seja inserido código após uma linha que contenha a palavra return, sem o fim de um bloco de código, sem o fecha chaves, ocorrerá um erro de compilação, pois após a linha do return o código fica inacessível.
O mesmo pode acontecer se caso o retorno for obrigatório, mas não for colocado o retorno, por exemplo:
1 2 3 4 5 |
public boolean isTipoNegocioAluguel(){ if(this.tipoNegocio == "aluguel"){ return true; } } |
O código acima, terá um erro de compilação, pois não há retorno descrito para todas as saídas. ou seja, se o tipoNegócio for aluguel irá retornar true corretamente, mas senão for aluguel, pelo código acima, não irá retornar nada. Logo é um erro para o Java, pois todo método com retorno deverá retornar alguma informação do mesmo tipo do retorno.
finally{
Com o fim desse artigo, foi descrito como declarar métodos e para o que eles servem.
Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!
Até um próximo post!
Leave a Reply