Um trecho de palestra com um mentor como parte do curso Codegym University. Inscreva-se no curso completo.


"Você já está aqui, Amigo? Sei que você já aprendeu muitos comandos Java. Você quase chegou ao meu nível!"

"É verdade, Diego?"

"Claro que não, ha-ha. Você ainda tem muito estudo e aprendizado para fazer. Ainda assim, você já sabe o suficiente para escrever programas bastante complexos. 10, 20, 30 linhas de código em um programa não é um programa muito grande, certo?"

"Eu acho que você está certo. Especialmente se você colocar chaves em linhas separadas."

"Mas um programa com mais de 100 linhas, agora isso é grande. Mesmo nós, robôs, temos muita dificuldade em entender esse código. O que você acha, há algo que você possa fazer para simplificar de alguma forma a escrita e a leitura de programas que têm muito código?

"Eu sinceramente espero que sim!"

"Suas esperanças não são em vão. É possível simplificar programas, e os métodos estão aqui para nos ajudar com isso. Às vezes, eles são chamados de funções .

"Funções, métodos... Uh, o que são?"

"Simplificando, um método é um grupo de comandos que tem um nome único . Em outras palavras, apenas colocamos vários comandos em um grupo e damos a ele um nome único. E é isso — boom — temos um método. A maioria muitas vezes, esses comandos são agrupados de acordo com algum raciocínio para resolver uma tarefa pequena e específica. Por exemplo, 'um método para imprimir linhas de um arquivo' ou 'um método para elevar um número a um expoente'.

"Então, nós dividimos o programa em métodos?"

"Sim, e simplifica o código.

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 da 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 da 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.

"É uma ótima ideia dividir um programa em métodos.

"Logo você se lembrará com admiração de como costumava escrever programas sem criar seus próprios métodos."

"Estou pronto para ouvir e tentar escrever métodos! Apenas me diga como fazê-lo."

Declarando um método em Java

"Como podemos declarar o método mais simples? Veja como:

public static void name()
{
  method body
}

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 isto:

name();

"Onde nameestá 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.

"E agora, Amigo, olhe com novos olhos para os comandos que você já aprendeu. Por exemplo, . Alguma coisa vem à sua mente sobre o que isso realmente é?"System.out.println()

"Você está dizendo que todos esses comandos são apenas métodos escritos por outros programadores?"

"Não todos, mas muitos deles. Sim, exatamente! Outros os escreveram para facilitar nossas vidas."

"Assim public static void main(String[] args)também é um método... Agora faz mais sentido!"

"Claro que sim! É programação! Acontece que o método principal — o alfa e o ômega do programa — 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");
   }
}




Chamamos o print10TimesWiFi()método


Declaramos o print10TimesWiFimétodo


Chamamos o printWiFi() método 10 em loop


Declaramos o printWiFimétodo

Mostramos " Wi-Fi" na tela

Fatos sobre métodos

"Separei alguns fatos úteis sobre métodos para você. Aqui, aproveite:

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 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. Dito isso, é melhor escolher nomes de métodos que pelo menos deixem um pouco claro para que servem. Vou falar sobre isso um pouco mais tarde.

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.

Nomes de método

"Então... eu prometi falar sobre os nomes dos métodos. Há muito se sabe que os dois problemas mais difíceis na programação são escolher os nomes certos para os métodos e escolher os nomes certos para as variáveis."

"Nunca pensei que fosse tão difícil!"

"Você simplesmente não sabia muito sobre o código vago dos outros, onde variáveis ​​e métodos têm nomes arbitrários. Apenas tente descobrir esse código. 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.

Por exemplo, é usado para 'colocar o programa em hibernação' e é usado para 'ler o próximo inteiro'. Conveniente, hein?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 print10TimesWiFimé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. Um nome de método usa 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! Imagine 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).

"Esses são todos os princípios básicos que governam a nomenclatura de métodos em Java. A lição acabou agora. Vá resolver as tarefas!"

"Já estou correndo, Diego!"


Um trecho de palestra com um mentor como parte do curso Codegym University. Inscreva-se no curso completo.