"¡Oye, joven recluta, que comete un montón de errores todos los días, incluso en los programas más simples!

"Um... Hola, Diego. ¡Tío, realmente sabes cómo animar a la gente!"

"¡Por supuesto que sí! Aprende a decir lo que hay que decir. Como dije, 'todos los días'. Expresándolo de manera más educada, mi saludo significa "futuro programador exitoso, si, por supuesto, no lo arruinas". ."

"¡Oooh, pues gracias, mi maestra más metálica! .

"Me lo agradecerás después de esta lección. Aquí voy a enumerar los errores más comunes observados por el compilador. Y tu trabajo es recordar. Prevenido es prevenido.

Olvidar un punto y coma

"El error más común que cometen los aspirantes a programadores de Java tiene que ver con el punto y coma. O más bien, su ausencia donde debería estar".

"La verdad es... que he cometido este delito repetidamente".

"Cada declaración dentro de un método debe terminar con un punto y coma. El punto y coma es lo que separa las declaraciones o los comandos: así es como le decimos al compilador de Java dónde termina un comando y comienza el siguiente.

Ejemplos de errores:

código incorrecto Código correcto
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?");

Olvidar cerrar comillas

"El segundo error más común para los recién llegados a Java es escribir una cadena en el código y luego olvidarse de cerrar la cita.

Cada literal de cadena en el código debe estar encerrado en ambos lados con comillas dobles ("). Los programadores principiantes suelen poner comillas al principio del texto, pero se olvidan de cerrarlas al final.

código incorrecto Código correcto
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.";

Olvidarse de incluir un signo más al pegar cuerdas

"Otro error común cuando se trabaja con cadenas es olvidarse de escribir un signo más al pegar cadenas. Este error es especialmente frecuente cuando el texto y las variables se concatenan en una expresión larga en el código.

Aquí hay unos ejemplos:

código incorrecto Código correcto
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);

Olvidarse de cerrar las llaves

"Este es un error muy común. Hay dos situaciones en las que esto es típico:

  1. Decidiste copiar el código de algún lugar y accidentalmente te perdiste algunas llaves.
  2. Simplemente no se preocupa por asegurarse de que cada paréntesis abierto coincida con un paréntesis de cierre".

"La segunda opción es lo que hago. ¡A veces me dejo llevar tanto que se me olvida!" .

"Para evitar estos errores, generalmente se recomienda que los programadores principiantes escriban la llave de cierre debajo de la de apertura.

Ejemplos:

código incorrecto Código correcto
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!");
      }
   }
}

Olvidar agregar paréntesis

"La mayoría de las veces, este error lo cometen los desarrolladores que conocen lenguajes de programación que no requieren paréntesis en situaciones similares.

Una posibilidad es que simplemente se olviden de poner paréntesis al final de una llamada al método:

Otra posibilidad es que se olviden de envolver la condición de una if-elsedeclaración entre paréntesis.

Ejemplos:

código incorrecto Código correcto
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!");
   }
}

Escribir la maindeclaración del método incorrectamente

"¡Tan pronto como declaran el maldito mainmétodo! Probablemente no haya nada que haga tropezar tanto a los novatos como este pobre método. Es importante destacar que siempre se sorprenden y se preguntan por qué su programa no se inicia. Y, por supuesto, el programador está No tiene la culpa, sino el programa, el compilador, el validador de código, la máquina Java, etc. La lista de chivos expiatorios es interminable.

Ejemplos:

código incorrecto Explicación
static void main(String[] args)
publicEstá perdido
public void main(String[] args)
staticEstá perdido
public main(String[] args)
voidEstá perdido
void main(String[] args)
publicy staticfaltan
public static void main(String args)
[]Está perdido
public static void main()
String[] argsEstá perdido
public static int main(String args)
Tenemos inten lugar devoid

El nombre del archivo es diferente del nombre de la clase.

"De acuerdo con el estándar de Java, todas las clases de Java deben almacenarse en un archivo con el mismo nombre que el nombre de la clase. Y como se mencionó anteriormente, el caso de las letras es importante aquí:

Nombre del archivo Nombre de la clase Nota
Solución.java Solución Todo esta bien
Solución en .java Solución El nombre del archivo como una letra 's' superflua
solución.java _ Solución El nombre del archivo comienza con una letra minúscula.
Solución. TXT Solución La extensión del archivo es .txt en lugar de .java
Solución.java solución El nombre de la clase comienza con una letra minúscula.

"En realidad, se pueden declarar varias clases en un archivo con la extensión .java, pero solo una de ellas puede tener la palabra publicantes del nombre de la clase. Y este es el nombre que debe coincidir con el nombre del archivo.

"Un archivo .java siempre debe tener una clase cuyo nombre sea el mismo que el nombre del archivo, y esa clase debe tener el publicmodificador. Ejemplo:

Solución.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

"Además, el lenguaje Java le permite escribir clases dentro de clases. Esta es otra forma de sortear la limitación anterior. Si una clase pública (una clase con el publicmodificador) se declara en un archivo y tiene el mismo nombre que el nombre del archivo, entonces puedes declarar tantas clases como quieras dentro de esta clase pública. Dicho esto, ya no serán clases ordinarias. En su lugar, serán clases internas o anidadas. Ejemplo:

Solución.java
public class Solution
{
   public class Apple
   {
   }

   public static class Pineapple
   {
   }
}

olvidar escribirpackage

"Dado que los programas suelen tener miles de clases, puede ser difícil encontrar nombres simples, comprensibles y únicos para todas ellas. Es por eso que en Java se acostumbra agrupar las clases en paquetes usando la palabra clave. Exactamente de la forma en que se agrupan los packagearchivos en carpetas".

"Ajá, por eso es que cada clase debe comenzar con una indicación del paquete al que pertenece".

"Exactamente. Aquí hay un ejemplo:

Código sin paquete Ejemplo corregido
public class Solution
{
}
package en.codegym.tasks.task0001;

public class Solution
{
}

Olvidando agregarimport

"Si queremos usar la clase de otra persona en nuestro programa, tenemos dos opciones: en todas partes de nuestro código también debemos escribir el nombre del paquete antes del nombre de la clase. Alternativamente, podemos escribir el nombre de la clase completamente calificado con la palabra clave una importvez . Ejemplo:

Sin usar importar Usando la importación
public class Solution
{
   java.util.Scanner scanner = new java.util.Scanner();
}
import java.util.Scanner;

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

"Ambas opciones funcionan, pero si simplemente escribe Scannersu código sin agregar import, entonces el compilador no podrá entender de qué paquete necesita tomar la Scannerclase, y su programa no se compilará".

"Gracias, Diego. Esta lección me hará prestar más atención".

"Eso es con lo que contaba. ¡Buena suerte!"