"Hé, jeune recrue, qui fait des tas d'erreurs tous les jours, même dans les programmes les plus simples !

"Euh... Salut, Diego. Mec, tu sais vraiment comment remonter le moral des gens !"

"Bien sûr, je le fais ! Apprenez à dire ce qui doit être dit. Comme je l'ai dit, "tous les jours". ."

« Oooh, eh bien merci, mon professeur le plus métallique ! .

"Vous me remercierez après cette leçon. Ici, je vais lister les erreurs les plus courantes notées par le compilateur. Et votre travail consiste à vous en souvenir. Prévenu est prévenu.

Oublier un point-virgule

"L'erreur la plus courante des aspirants programmeurs Java implique le point-virgule. Ou plutôt, son absence là où il devrait être."

"La vérité est... que j'ai commis cette infraction à plusieurs reprises."

"Chaque instruction à l'intérieur d'une méthode doit se terminer par un point-virgule. Le point-virgule est ce qui sépare les instructions ou les commandes : c'est ainsi que nous indiquons au compilateur Java où se termine une commande et où commence la suivante.

Exemples d'erreurs :

code incorrect Code correct
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?");

Oublier de fermer les guillemets

"La deuxième erreur la plus courante pour les nouveaux venus en Java est d'écrire une chaîne dans le code, puis d'oublier de fermer le guillemet.

Chaque littéral de chaîne dans le code doit être entouré des deux côtés par des guillemets doubles ("). Les programmeurs débutants mettent très souvent des guillemets au début du texte, mais ils oublient de les fermer à la fin.

code incorrect Code correct
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.";

Oublier d'inclure un signe plus lors du collage de chaînes

"Une autre erreur courante lorsque vous travaillez avec des chaînes est d'oublier d'écrire un signe plus lorsque vous collez des chaînes ensemble. Cette erreur est particulièrement répandue lorsque le texte et les variables sont concaténés dans une longue expression dans le code.

Voici quelques exemples:

code incorrect Code correct
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);

Oublier de fermer les accolades

"C'est une erreur très courante. Il y a deux situations où cela est typique :

  1. Vous avez décidé de copier du code quelque part et avez accidentellement manqué des accolades.
  2. Vous ne vous souciez tout simplement pas de vous assurer que chaque parenthèse ouverte correspond à une parenthèse fermante."

"La deuxième option est ce que je fais. Parfois, je suis tellement emporté que j'oublie!" .

"Pour éviter ces erreurs, il est généralement recommandé aux programmeurs débutants d'écrire l'accolade fermante sous celle d'ouverture.

Exemples:

code incorrect Code correct
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!");
      }
   }
}

Oublier d'ajouter des parenthèses

"Le plus souvent, cette erreur est commise par des développeurs qui connaissent des langages de programmation qui ne nécessitent pas de parenthèses dans des situations similaires.

Une possibilité est qu'ils oublient simplement de mettre des parenthèses à la fin d'un appel de méthode :

Une autre possibilité est qu'ils oublient de placer la condition d'une if-elseinstruction entre parenthèses.

Exemples:

code incorrect Code correct
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!");
   }
}

mainMauvaise écriture de la déclaration de méthode

"Dès qu'ils déclarent la foutue mainméthode ! Il n'y a probablement rien qui perturbe autant les débutants que cette mauvaise méthode. Surtout, ils sont toujours surpris et se demandent pourquoi leur programme ne démarre pas ? Et, bien sûr, le programmeur n'est pas Ce n'est pas à blâmer, mais le programme, le compilateur, le validateur de code, la machine Java, etc. La liste des boucs émissaires est interminable.

Exemples:

code incorrect Explication
static void main(String[] args)
publicest manquant
public void main(String[] args)
staticest manquant
public main(String[] args)
voidest manquant
void main(String[] args)
publicet staticmanquent
public static void main(String args)
[]est manquant
public static void main()
String[] argsest manquant
public static int main(String args)
Nous avons intau lieu devoid

Le nom du fichier est différent du nom de la classe

"Selon la norme Java, toutes les classes Java doivent être stockées dans un fichier portant le même nom que le nom de la classe. Et comme mentionné précédemment, la casse des lettres est importante ici :

Nom de fichier Nom du cours Note
Solution.java Solution Tout va bien
Les solutions .java Solution Le nom du fichier sous la forme d'une lettre 's' superflue
s solution.java Solution Le nom du fichier commence par une lettre minuscule
Solution. SMS Solution L'extension de fichier est .txt au lieu de .java
Solution.java solution Le nom de la classe commence par une lettre minuscule

"En fait, plusieurs classes peuvent être déclarées dans un fichier avec l'extension .java, mais une seule d'entre elles peut avoir le mot publicdevant le nom de la classe. Et c'est ce nom qui doit correspondre au nom du fichier.

"Un fichier .java doit toujours avoir une classe dont le nom est le même que le nom du fichier, et cette classe doit avoir le publicmodificateur. Exemple :

Solution.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

"De plus, le langage Java vous permet d'écrire des classes dans les classes. C'est une autre façon de contourner la limitation ci-dessus. Si une classe publique (une classe avec le publicmodificateur) est déclarée dans un fichier et porte le même nom que le nom du fichier, vous pouvez alors déclarer autant de classes que vous le souhaitez à l'intérieur de cette classe publique. Cela dit, il ne s'agira plus de classes ordinaires, mais de classes internes ou imbriquées. Exemple :

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

   public static class Pineapple
   {
   }
}

Oublier d'écrirepackage

"Étant donné que les programmes ont généralement des milliers de classes, il peut être difficile de trouver des noms simples, compréhensibles et uniques pour chacun d'entre eux. C'est pourquoi en Java, il est d'usage de regrouper les classes dans des packages à l'aide du mot-clé. Exactement la façon dont les fichiers sont packageregroupés dans des dossiers."

"Ah-ha, c'est pourquoi chaque classe devrait commencer par une indication du paquet auquel elle appartient."

"Exactement. Voici un exemple :

Code sans forfait Exemple corrigé
public class Solution
{
}
package en.codegym.tasks.task0001;

public class Solution
{
}

Oublier d'ajouterimport

"Si nous voulons utiliser la classe de quelqu'un d'autre dans notre programme, nous avons deux options : partout dans notre code, nous devons également écrire son nom de package avant le nom de la classe. Alternativement, nous pouvons écrire le nom de classe complet avec le mot-clé une importfois . Exemple:

Sans utiliser l'importation Utilisation de l'importation
public class Solution
{
   java.util.Scanner scanner = new java.util.Scanner();
}
import java.util.Scanner;

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

"Les deux options fonctionnent, mais si vous écrivez simplement Scannerdans votre code sans ajouter import, le compilateur ne pourra pas comprendre de quel paquet il doit prendre la Scannerclasse et votre programme ne compilera pas."

"Merci, Diego. Cette leçon va me faire prêter plus d'attention."

« C'est ce sur quoi je comptais. Bonne chance !