"Ei, jovem recruta, que comete um monte de erros todos os dias, mesmo nos programas mais simples!

"Hum... Oi, Diego. Rapaz, você realmente sabe animar as pessoas!"

"Claro que sim! Aprenda a dizer o que precisa ser dito. Como eu disse, 'todos os dias'. Colocando de forma mais educada, minha saudação significa "futuro programador de sucesso, se, é claro, você não estragar tudo ."

"Oooh, então obrigado, meu professor mais metálico! .

"Você vai me agradecer depois desta lição. Aqui vou listar os erros mais comuns observados pelo compilador. E seu trabalho é lembrar. Prevenido vale por dois.

Esquecer um ponto e vírgula

"O erro mais comum que aspirantes a programadores Java cometem envolve o ponto-e-vírgula. Ou melhor, sua ausência onde deveria estar."

"A verdade é... eu cometi este delito repetidamente."

"Cada instrução dentro de um método deve terminar com um ponto e vírgula. O ponto e vírgula é o que separa as instruções ou comandos: é assim que dizemos ao compilador Java onde um comando termina e o próximo começa.

Exemplos de erros:

Código incorreto código correto
int a
int b = 5
int c = a + b
int a;
int b = 5;
int c = a + b;
System.out.println("Hello")
System.out.println("Hello");
if (2 > 3)
   System.out.println("Are we in Australia?")
if (2 > 3)
   System.out.println("Are we in Australia?");

Esquecer de fechar aspas

"O segundo erro mais comum para iniciantes em Java é escrever uma string no código e depois esquecer de fechar as aspas.

Cada string literal no código deve ser colocada em ambos os lados com aspas duplas ("). Os programadores iniciantes costumam colocar aspas no início do texto, mas se esquecem de fechá-las no final.

Código incorreto código correto
String s = "Hello;
String s = "Hello";
System.out.println("Hello);
System.out.println("Hello");
String s = "Hello";
String message = s + " and by. ;
String s = "Hello";
String message = s + " and bye.";

Esquecer de incluir um sinal de mais ao colar as cordas

"Outro erro comum ao trabalhar com strings é esquecer de escrever um sinal de adição ao colar strings. Esse erro é especialmente comum quando texto e variáveis ​​são concatenados em uma longa expressão no código.

aqui estão alguns exemplos:

Código incorreto código correto
String s = "Hello";
String message = s  " and bye.";
String s = "Hello";
String message = s + " and bye.";
int age = 35;
System.out.println("Age=" age);
int age = 35;
System.out.println("Age=" + age);
int age = 35;
System.out.println("Age=", age);
int age = 35;
System.out.println("Age=" + age);

Esquecer de fechar chaves

"Este é um erro muito comum. Existem duas situações em que isso é típico:

  1. Você decidiu copiar o código de algum lugar e acidentalmente perdeu algumas chaves.
  2. Você simplesmente não está se preocupando em garantir que cada parêntese aberto corresponda a um parêntese fechado."

"A segunda opção é o que eu faço. Às vezes fico tão empolgado que esqueço!" .

"Para evitar esses erros, geralmente é recomendado que os programadores iniciantes escrevam a chave de fechamento abaixo da de abertura.

Exemplos:

Código incorreto código correto
if (2 < 3)
{
   if (3 < 4)
   {
      System.out.println("Mathematics!");
   }
if (2 < 3)
{
   if (3 < 4)
   {
      System.out.println("Mathematics!");
   }
}
{
   if (2 < 3)
   {
      if (3 < 4)
      {
         System.out.println("Mathematics!");
      }
   }
{
   if (2 < 3)
   {
      if (3 < 4)
      {
         System.out.println("Mathematics!");
      }
   }
}

Esquecer de adicionar parênteses

"Na maioria das vezes, esse erro é cometido por desenvolvedores que conhecem linguagens de programação que não exigem parênteses em situações semelhantes.

Uma possibilidade é que eles simplesmente se esqueçam de colocar parênteses no final de uma chamada de método:

Outra possibilidade é que eles se esqueçam de colocar a condição de uma if-elseinstrução entre parênteses.

Exemplos:

Código incorreto código correto
System.out.println("Hello!");
System.out.println;
System.out.println("And bye!");
System.out.println("Hello!");
System.out.println();
System.out.println("And bye!");
if 2 < 3
{
   if 3 < 4
   {
      System.out.println("Mathematics!");
   }
}
if (2 < 3)
{
   if (3 < 4)
   {
      System.out.println("Mathematics!");
   }
}

Escrevendo a maindeclaração do método incorretamente

"Assim que eles declaram o mainmétodo sangrento! Provavelmente não há nada que decepcione tanto os novatos quanto esse método pobre. Importante, então eles sempre ficam surpresos e se perguntam por que seu programa não inicia? E, claro, o programador é não tenho culpa, mas o programa, o compilador, o validador de código, a máquina Java, etc. A lista de bodes expiatórios é interminável.

Exemplos:

Código incorreto Explicação
static void main(String[] args)
publicestá desaparecido
public void main(String[] args)
staticestá desaparecido
public main(String[] args)
voidestá desaparecido
void main(String[] args)
publice staticestão desaparecidos
public static void main(String args)
[]está desaparecido
public static void main()
String[] argsestá desaparecido
public static int main(String args)
Temos intem vez devoid

O nome do arquivo é diferente do nome da classe

"De acordo com o padrão Java, todas as classes Java devem ser armazenadas em um arquivo com o mesmo nome da classe. E, conforme mencionado anteriormente, o caso das letras é importante aqui:

Nome do arquivo Nome da classe Observação
Solução.java Solução Tudo está bem
Solução s.java _ Solução O nome do arquivo como uma letra 's' supérflua
s olution.java Solução O nome do arquivo começa com uma letra minúscula
Solução. TXT Solução A extensão do arquivo é .txt em vez de .java
Solução.java solução O nome da classe começa com uma letra minúscula

"Na verdade, várias classes podem ser declaradas em um arquivo com a extensão .java, mas apenas uma delas pode ter a palavra publicantes do nome da classe. E este é o nome que deve corresponder ao nome do arquivo.

"Um arquivo .java sempre deve ter uma classe cujo nome seja igual ao nome do arquivo, e essa classe precisa ter o publicmodificador. Exemplo:

Solução.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

"Além disso, a linguagem Java permite escrever classes dentro de classes. Essa é outra maneira de contornar a limitação acima. Se uma classe pública (uma classe com o publicmodificador) for declarada em um arquivo e tiver o mesmo nome do arquivo, então você pode declarar quantas classes quiser dentro desta classe pública. Dito isso, não serão mais classes comuns. Em vez disso, serão classes internas ou aninhadas. Exemplo:

Solução.java
public class Solution
{
   public class Apple
   {
   }

   public static class Pineapple
   {
   }
}

esquecendo de escreverpackage

"Como os programas geralmente têm milhares de classes, pode ser difícil encontrar nomes simples, compreensíveis e exclusivos para todas elas. É por isso que em Java é comum agrupar classes em pacotes usando a palavra-chave. Exatamente como os arquivos são packageagrupados em pastas."

"Ah-ha, então é por isso que cada classe deve começar com uma indicação do pacote ao qual pertence."

"Exatamente. Aqui está um exemplo:

Código sem pacote Exemplo corrigido
public class Solution
{
}
package en.codegym.tasks.task0001;

public class Solution
{
}

esquecendo de adicionarimport

"Se quisermos usar a classe de outra pessoa em nosso programa, temos duas opções: em todo o nosso código, também devemos escrever o nome do pacote antes do nome da classe. Alternativamente, podemos escrever o nome da classe totalmente qualificado com a palavra-chave uma importvez . Exemplo:

Sem usar importação Usando importação
public class Solution
{
   java.util.Scanner scanner = new java.util.Scanner();
}
import java.util.Scanner;

public class Solution
{
   Scanner console = new Scanner();
}

"Ambas as opções funcionam, mas se você simplesmente escrever Scannerem seu código sem adicionar import, o compilador não será capaz de entender de qual pacote ele precisa para obter a Scannerclasse e seu programa não será compilado."

"Obrigado, Diego. Esta lição vai me fazer prestar mais atenção."

"Era com isso que eu estava contando. Boa sorte!"