"Ehi, giovane recluta, che ogni giorno fa un sacco di errori, anche nei programmi più semplici!

"Ehm... Ciao, Diego. Ragazzi, sai davvero come rallegrare le persone!"

"Certo che lo voglio! Impara a dire ciò che deve essere detto. Come ho detto, 'ogni giorno'. Per dirla in modo più educato, il mio saluto significa "futuro programmatore di successo, se, ovviamente, non lo fai ."

"Oooh, beh allora grazie, mio ​​metallicissimo maestro! .

"Mi ringrazierai dopo questa lezione. Qui elencherò gli errori più comuni rilevati dal compilatore. E il tuo compito è ricordare. Uomo avvisato mezzo salvato.

Dimenticare un punto e virgola

"L'errore più comune che commettono gli aspiranti programmatori Java riguarda il punto e virgola. O meglio, la sua assenza dove dovrebbe essere."

"La verità è... che ho commesso questo reato ripetutamente."

"Ogni istruzione all'interno di un metodo deve terminare con un punto e virgola. Il punto e virgola è ciò che separa istruzioni o comandi: è così che diciamo al compilatore Java dove finisce un comando e inizia il successivo.

Esempi di errori:

codice non corretto Codice corretto
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?");

Dimenticare di chiudere le citazioni

"Il secondo errore più comune per i neofiti di Java è scrivere una stringa nel codice e poi dimenticare di chiudere la citazione.

Ogni valore letterale stringa nel codice deve essere racchiuso su entrambi i lati tra virgolette doppie ("). I programmatori principianti molto spesso mettono le virgolette all'inizio del testo, ma si dimenticano di chiuderle alla fine.

codice non corretto Codice corretto
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.";

Dimenticare di includere un segno più quando si incollano insieme le stringhe

"Un altro errore comune quando si lavora con le stringhe è dimenticare di scrivere un segno più quando si incollano insieme le stringhe. Questo errore è particolarmente diffuso quando testo e variabili sono concatenati in una lunga espressione nel codice.

Ecco alcuni esempi:

codice non corretto Codice corretto
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);

Dimenticare di chiudere le parentesi graffe

"Questo è un errore molto comune. Ci sono due situazioni in cui questo è tipico:

  1. Hai deciso di copiare il codice da qualche parte e hai accidentalmente perso alcune parentesi graffe.
  2. Semplicemente non ti preoccupi di assicurarti che ogni parentesi aperta corrisponda a una parentesi chiusa."

"La seconda opzione è quello che faccio. A volte mi lascio trasportare così tanto che dimentico!" .

"Per evitare questi errori, di solito si consiglia ai programmatori principianti di scrivere la parentesi graffa di chiusura sotto quella di apertura.

Esempi:

codice non corretto Codice corretto
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!");
      }
   }
}

Dimenticare di aggiungere parentesi

"Molto spesso questo errore viene commesso da sviluppatori che conoscono linguaggi di programmazione che non richiedono parentesi in situazioni simili.

Una possibilità è che si dimentichino semplicemente di mettere le parentesi alla fine di una chiamata di metodo:

Un'altra possibilità è che si dimentichino di racchiudere la condizione di un'istruzione if-elsetra parentesi.

Esempi:

codice non corretto Codice corretto
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!");
   }
}

Scrivere la maindichiarazione del metodo in modo errato

"Non appena dichiarano il dannato mainmetodo! Probabilmente non c'è niente che faccia inciampare i neofiti tanto quanto questo metodo scadente. È importante sottolineare che poi sono sempre sorpresi e si chiedono perché il loro programma non si avvia? E, naturalmente, il programmatore lo è non è da biasimare, ma il programma, il compilatore, il validatore di codice, la macchina Java, ecc. L'elenco dei capri espiatori è infinito.

Esempi:

codice non corretto Spiegazione
static void main(String[] args)
publicmanca
public void main(String[] args)
staticmanca
public main(String[] args)
voidmanca
void main(String[] args)
publice staticmancano
public static void main(String args)
[]manca
public static void main()
String[] argsmanca
public static int main(String args)
Abbiamo intinvece divoid

Il nome del file è diverso dal nome della classe

"Secondo lo standard Java, tutte le classi Java devono essere memorizzate in un file con lo stesso nome del nome della classe. E come accennato in precedenza, il caso delle lettere conta qui:

Nome del file Nome della classe Nota
Soluzione.java Soluzione Va tutto bene
Soluzione con .java Soluzione Il nome del file come lettera superflua 's'
s olution.java Soluzione Il nome del file inizia con una lettera minuscola
Soluzione. TXT Soluzione L'estensione del file è .txt anziché .java
Soluzione.java soluzione Il nome della classe inizia con una lettera minuscola

"In realtà, diverse classi possono essere dichiarate in un file con estensione .java, ma solo una di esse può avere la parola publicprima del nome della classe. E questo è il nome che deve corrispondere al nome del file.

"Un file .java deve sempre avere una classe il cui nome è uguale al nome del file e quella classe deve avere il publicmodificatore. Esempio:

Soluzione.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

"Inoltre, il linguaggio Java ti consente di scrivere classi all'interno di classi. Questo è un altro modo per aggirare la limitazione di cui sopra. Se una classe pubblica (una classe con il publicmodificatore) è dichiarata in un file e ha lo stesso nome del nome del file, quindi puoi dichiarare tutte le classi che vuoi all'interno di questa classe pubblica.Detto questo, queste non saranno più classi ordinarie.Saranno invece classi interne o nidificate.Esempio:

Soluzione.java
public class Solution
{
   public class Apple
   {
   }

   public static class Pineapple
   {
   }
}

Dimenticare di scriverepackage

"Poiché i programmi di solito hanno migliaia di classi, può essere difficile trovare nomi semplici, comprensibili e univoci per tutti loro. Ecco perché in Java è consuetudine raggruppare le classi in pacchetti usando la parola chiave. Esattamente il modo in cui i file sono packageraggruppati nelle cartelle."

"Ah-ha, quindi è per questo che ogni classe dovrebbe iniziare con l'indicazione del pacchetto a cui appartiene."

"Esattamente. Ecco un esempio:

Codice senza confezione Esempio corretto
public class Solution
{
}
package en.codegym.tasks.task0001;

public class Solution
{
}

Dimenticare di aggiungereimport

"Se vogliamo usare la classe di qualcun altro nel nostro programma, abbiamo due opzioni: ovunque nel nostro codice dobbiamo anche scrivere il nome del pacchetto prima del nome della classe. In alternativa, possiamo scrivere il nome completo della classe con la parola chiave una importvolta . Esempio:

Senza usare import Utilizzo dell'importazione
public class Solution
{
   java.util.Scanner scanner = new java.util.Scanner();
}
import java.util.Scanner;

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

"Entrambe le opzioni funzionano, ma se scrivi semplicemente Scanneril tuo codice senza aggiungere import, il compilatore non sarà in grado di capire da quale pacchetto deve prendere la Scannerclasse e il tuo programma non verrà compilato."

"Grazie, Diego. Questa lezione mi farà prestare più attenzione."

"Ecco su cosa contavo. Buona fortuna!"