1. Funções/métodos em Java

Você já aprendeu muitos comandos Java, o que significa que pode escrever alguns programas bem complexos. 10, 20, 30 linhas de código em um programa não é um programa muito grande, certo?

Mas um programa de mais de 100, agora é grande e pode ser bastante difícil entender o código. Existe algo que você possa fazer para simplificar de alguma forma a escrita e a leitura de programas com muito código?

Sim, e os métodos (ou funções) nos ajudarão com isso.

O que é um método? Simplificando, um método é um grupo de comandos que possui um nome exclusivo . Em outras palavras, apenas colocamos vários comandos em um grupo e damos a ele um nome exclusivo. E é isso - o método está pronto.

Exemplo:

Sem um método Com um método
class Solution
{
   public static void main(String[] args)
   {
     System.out.print("Wi-");
     System.out.println("Fi");
     System.out.print("Wi-");
     System.out.println("Fi");

     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void main(String[] args)
   {
     printWiFi();
     printWiFi();
     printWiFi();
   }
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}

No programa da coluna da esquerda, repetimos o mesmo código três vezes — fizemos isso intencionalmente para ilustrar um ponto. Mas no programa à direita, movemos o código repetido para um método separado e demos a ele um nome exclusivo — printWiFi.

E em vez do código realocado, chamamos o printWiFi()método 3 vezes.

Quando o programa da coluna à direita é executado, cada vez que o printWiFi()método é executado, todos os comandos dentro do printWiFi()método são executados. Acabamos de criar um novo comando (método), combinando vários comandos em um único grupo.

Qualquer código pode ser dividido em métodos separados. Isso é feito para simplificar as coisas: a ideia é que é melhor ter muitos métodos pequenos do que um grande. Você logo ficará surpreso ao saber que já houve um tempo em que você escreveu seus próprios programas sem escrever seus próprios métodos.


2. Declarando um método em Java

Então, como você escreve seu método corretamente?

public static void name()
{
  method body
}

Há muitas nuances a serem consideradas ao declarar (criar) um método, mas começaremos com o básico. Como podemos declarar o método mais simples? Uma declaração de método simples se parece com isso:

Onde name é o nome exclusivo do método e method bodyrepresenta os comandos que compõem o método. O significado das palavras public, static, e voidserá discutido mais tarde.

Depois de criarmos um método, podemos chamá-lo em nossos outros métodos. Uma chamada de método se parece com isso:

name();

Onde nameé o nome único do método que queremos chamar, ou seja, o método cujos comandos queremos executar quando chegarmos à chamada do método.

Quando o programa atingir a chamada do método, ele simplesmente entrará no método, executará todos os seus comandos, retornará ao método original e continuará a execução.

Como você provavelmente já adivinhou, a maioria dos comandos que aprendemos até agora são apenas métodos escritos por outros programadores para facilitar nossa vida: , , etc.System.out.println()Thread.sleep()

Um método pode conter chamadas para outros métodos:

Código Observação
class Solution
{
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}




Chame o printWiFi10Times()método


Declare o printWiFi10Timesmétodo


Chame o printWiFi() método 10 vezes em um loop


Declare o printWiFimétodo

Exiba o texto na tela:
Wi-Fi

3. Fatos sobre métodos

Aqui estão mais alguns fatos sobre métodos:

Fato 1. Um método sempre faz parte de uma classe.

Um método só pode ser declarado em uma classe. Um método não pode ser declarado dentro de outro método. Um método não pode ser declarado fora de uma classe.

Fato 2. O nome de um método não tem nenhum significado sagrado.

Não importa quais métodos são chamados — isso não afeta nada. O método principal é um método como todos os outros. Só que esse nome foi escolhido para o método a partir do qual a máquina Java iniciará a execução do programa. Não há nada de mágico nisso.

Fato 3. A ordem dos métodos em uma classe não importa.

Você pode escrever seus métodos em uma classe em qualquer ordem — isso não afetará a execução do programa de forma alguma. Exemplo:

Código
class Solution
{
   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   public static void main(String[] args)
   {
     printWiFi10Times();
   }
}

Fato 4. As variáveis ​​dentro de um método não estão relacionadas de forma alguma com as variáveis ​​de outros métodos.

O que acontece em Vegas, fica em Vegas. E as variáveis ​​declaradas dentro de um método ficam dentro do método.

Variáveis ​​com os mesmos nomes podem ser declaradas em dois métodos adjacentes, e essas variáveis ​​não estão relacionadas entre si de forma alguma.


4. Nomes de métodos

Há muito se sabe que os dois problemas mais difíceis na programação são escolher os nomes corretos para os métodos e escolher os nomes corretos para as variáveis.

Na verdade, quase toda uma ciência surgiu sobre como nomear métodos corretamente. E cada linguagem de programação tem seus próprios padrões. Em Java, costuma-se seguir estes princípios:

Princípio 1. Um nome de método deve descrever brevemente o que o método faz.

Em seguida, outro programador lendo seu código pode confiar no nome do método para adivinhar o que o código faz. Ele ou ela não precisará consultar o código dos métodos chamados todas as vezes. E o propósito dos métodos é mais fácil de lembrar.

Lembre-se de que é usado para 'colocar o programa em hibernação' e é usado para 'ler o próximo inteiro'. Conveniente, certo?Thread.sleep()Scanner.nextInt()

Princípio 2. Um nome de método pode conter várias palavras.

No entanto, existem várias limitações ao fazer isso:

  • Você não pode ter espaços em um nome de método: todas as palavras são escritas juntas.
  • Cada palavra é maiúscula, exceto a primeira.
  • Um nome de método sempre começa com uma letra minúscula

Lembre-se do printWiFi10Timesmétodo. O que esse nome significa? "Mostrar a palavra 'WiFi' 10 vezes". Você não deve incluir muitas palavras no nome de um método: o nome deve refletir sua própria essência.

Esse padrão para nomear métodos é chamado CamelCase (as letras maiúsculas são como as corcundas de um camelo).

Princípio 3. Um nome de método começa com um verbo.

Um método sempre faz alguma coisa, então a primeira palavra em um nome de método é sempre uma ação.

Aqui estão alguns nomes ruins para métodos: home, cat, car, train, ...;

Alguns bons nomes são: run, execute, print, read, write, ...

Princípio 4. Use apenas letras e números latinos.

Java tem excelente suporte para diferentes idiomas. Você pode escrever os nomes das variáveis, métodos e classes tanto em russo quanto em chinês — tudo funcionará!

Mas! Quanto tempo você teria para estudar Java, se o System.out.println()método fosse escrito em chinês? Muito mais tempo do que agora, certo? Esse é o primeiro ponto.

Em segundo lugar, muitas equipes de desenvolvimento de software são internacionais. Um número muito grande de bibliotecas Java é usado por programadores de todo o mundo.

Portanto, é recomendável usar apenas letras e números latinos nos nomes dos métodos.

Importante:
O nome de um método deve começar com uma letra (não pode começar com um número).