Métodos em Java

Métodos em Java

1. Introdução

Em Java,methods é onde definimos a lógica de negócios de um aplicativo. Eles definem as interações entre os dados incluídos em um objeto.

Neste tutorial,we’ll go through the syntax of Java methods, the definition of the method signature, and how to call and overload methods.

2. Sintaxe do método

Primeiro, um método consiste em seis partes:

  • Access modifier: opcionalmente, podemos especificar de onde o código pode-se acessar o método

  • Return type: o tipo do valor retornado pelo método, se houver

  • Method identifier: o nome que damos ao método

  • Parameter list: uma lista opcional separada por vírgulas de entradas para o método

  • Exception list: uma lista opcional de exceções que o método pode lançar

  • Body: definição da lógica (pode estar vazio)

Vamos ver um exemplo:

 

image

Vamos dar uma olhada em cada uma dessas seis partes de um método Java.

2.1. Modificador de acesso

Oaccess modifier nos permite especificar quais objetos podem ter acesso ao método. Existem quatro modificadores de acesso possíveis:public, protected, private e padrão (também chamado depackage-private).

Um métodocan also include the static keyword antes ou depois do modificador de acesso. Isso significa que o método pertence à classe e não às instâncias e, portanto, podemos chamar o método sem criar uma instância da classe. Métodos sem a palavra-chavestatic são conhecidos como métodos de instância e só podem ser chamados em uma instância da classe.

Em relação ao desempenho, um método estático será carregado na memória apenas uma vez - durante o carregamento da classe - e, portanto, será mais eficiente em termos de memória.

2.2. Tipo de retorno

Os métodos podem retornar dados para o código de onde foram chamados. A method can return a primitive value or an object reference, or it can return nothing se usarmos a palavra-chavevoid como o tipo de retorno.

Vamos ver um exemplo de métodovoid :

public void printFullName(String firstName, String lastName) {
    System.out.println(firstName + " " + lastName);
}

If we declare a return type, then we have to specify a return statement in the method body. Uma vez que a instruçãoreturn foi executada, a execução do corpo do método será concluída e se houver mais instruções, estas não serão processadas.

Por outro lado, um métodovoid não retorna nenhum valor e, portanto, não possui uma instruçãoreturn.

2.3. Identificador do método

O identificador de método é o nome que atribuímos a uma especificação de método. É uma boa prática usar um nome informativo e descritivo. Vale a pena mencionar que um identificador de método pode ter no máximo 65536 caracteres (embora um nome longo).

2.4. Lista de Parâmetros

Podemosspecify input values for a method em sua lista de parâmetros, que está entre parênteses. Um método pode ter de 0 a 255 parâmetros delimitados por vírgulas. Um parâmetro pode serobject,a primitive ouenumeration. Podemos usar anotações Java no nível de parâmetro do método (por exemplo,Spring annotation @RequestParam).

2.5. Lista de exceções

Podemos especificar quais exceções são lançadas por um método usando a cláusulathrows. No caso de achecked exception,, devemos incluir o código emtry-catch clause ou fornecer uma cláusulathrows na assinatura do método.

Então, vamos dar uma olhada em uma variante mais complexa de nosso método anterior, que lança uma exceção verificada:

public void writeName(String name) throws IOException {
    PrintWriter out = new PrintWriter(new FileWriter("OutFile.txt"));
    out.println("Name: " + name);
    out.close();
}

2.6. Corpo do método

The last part of a Java method is the method body, which contains the logic we want to execute. No corpo do método, podemos escrever quantas linhas de código quisermos - ou nenhuma no caso dos métodosstatic. Se nosso método declarar um tipo de retorno, o corpo do método deverá conter uma declaração de retorno.

3. Assinatura do método

De acordo com sua definição, uma assinatura de método é composta de apenas dois componentes -the method’s name and parameter list.

Então, vamos escrever um método simples:

public String getName(String firstName, String lastName) {
  return firstName + " " + middleName + " " + lastName;
}

A assinatura deste método égetName(String firstName, String lastName).

O identificador do método pode ser qualquer identificador. No entanto, se seguirmos convenções comuns de codificação Java, o identificador do método deve ser um verbo em minúsculas que pode ser seguido por adjetivos e / ou substantivos.

4. Chamando um método

Agora, vamos explorarhow to call a method in Java. Seguindo o exemplo anterior, vamos supor que esses métodos estejam incluídos em umJava class chamadoPersonName:

public class PersonName {
  public String getName(String firstName, String lastName) {
    return firstName + " " + middleName + " " + lastName;
  }
}

Como nosso métodogetName é um método de instância e não um métodostatic, para chamar o métodogetName, precisamoscreate an instance of the classPersonName:

PersonName personName = new PersonName();
String fullName = personName.getName("Alan", "Turing");

Como podemos ver, usamos o objeto criado para chamar o métodogetName.

Finalmente, vamos dar uma olhada emhow to call a static method. No caso de astatic method, não precisamos de uma instância de classe para fazer a chamada. Em vez disso, invocamos o método com seu nome prefixado pelo nome da classe.

Vamos demonstrar o uso de uma variante do exemplo anterior:

public class PersonName {
  public static String getName(String firstName, String lastName) {
    return firstName + " " + middleName + " " + lastName;
  }
}

Nesse caso, a chamada do método é:

String fullName = PersonName.getName("Alan", "Turing");

5. Sobrecarga de método

Java nos permite tertwo or more methods with the same identifier but different parameter list — different method signatures. Nesse caso, dizemos quethe method is overloaded. Vamos com um exemplo:

public String getName(String firstName, String lastName) {
  return getName(firstName, "", lastName);
}

public String getName(String firstName, String middleName, String lastName) {
  if (!middleName.isEqualsTo("")) {
    return firstName + " " + lastName;
  }
  return firstName + " " + middleName + " " + lastName;
}

A sobrecarga de método é útil para casos como o exemplo, onde podemos ter um método implementando uma versão simplificada da mesma funcionalidade.

Finalmente, um bom hábito de design é garantir queoverloaded methods se comporte de maneira semelhante. Caso contrário, o código será confuso se um método com o mesmo identificador se comportar de maneira diferente.

6. Conclusão

Neste tutorial, exploramos as partes da sintaxe Java envolvidas na especificação de um método em Java.

Em particular, examinamos o modificador de acesso, o tipo de retorno, o identificador do método, a lista de parâmetros, a lista de exceções e o corpo do método. Em seguida, vimos a definição da assinatura do método, como chamar um método e como sobrecarregar um método.

Como de costume, o código visto aqui está disponívelover on GitHub.