CodeGym /Cours Java /All lectures for FR purposes /Erreurs de compilation courantes

Erreurs de compilation courantes

All lectures for FR purposes
Niveau 1 , Leçon 1106
Disponible

1. Oublier un point-virgule

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

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?");


2. Oublier de fermer les guillemets

La deuxième erreur la plus courante pour les débutants 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.

Voici quelques exemples:

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.";


3. Oublier d'inclure un signe plus lors du collage de cordes

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);


4. Oublier de fermer les accolades

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

Première situation : vous avez décidé de copier du code quelque part et avez accidentellement manqué des accolades. Deuxième situation : vous ne vous souciez tout simplement pas de vous assurer que chaque parenthèse ouverte correspond à une parenthèse fermante.

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!");
      }
   }
}


5. 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!");
   }
}


6. Écrire la maindéclaration de méthode de manière incorrecte

Dès qu'ils déclarent la mainméthode sanglante ! 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 à 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


7. 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 importe ici :

Nom de fichier Nom du cours Note
Solution.java
Solution
Tout va bien
Solutions.java
Solution
Le nom du fichier a une lettre superflues
solution.java
Solution
Le nom du fichier commence par une lettre minuscule
Solution.txt
Solution
L'extension de fichier est .txtau 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 le 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 des 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, alors vous pouvez déclarer autant de classes que vous le souhaitez dans cette classe publique. Cela dit, ce ne seront plus des classes ordinaires. Au lieu de cela, il s'agira de classes internes ou imbriquées. Exemple:

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

   public static class Pineapple
   {
   }
}


8. 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'eux. C'est pourquoi en Java, il est d'usage de regrouper les classes dans des packages à l'aide du packagemot-clé. Exactement la façon dont les fichiers sont regroupés dans des dossiers.

C'est pourquoi chaque classe doit commencer par une indication du package auquel elle appartient. Exemple

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

public class Solution
{
}


9. 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 importmot-clé une fois.

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.


Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION