1. Pontosvessző elfelejtése

A Java programozók leggyakoribb hibája a pontosvessző. Vagy inkább a hiánya ott, ahol lennie kell.

A metóduson belül minden állításnak pontosvesszővel kell végződnie. A pontosvessző az, ami elválasztja az utasításokat vagy parancsokat: így mondjuk meg a Java fordítónak, hogy hol végződik az egyik parancs, és hol kezdődik a következő.

Példák a hibákra:

Hibás kód Helyes kód
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. Az idézetek bezárásának elfelejtése

A Java újoncainak második leggyakoribb hibája, hogy egy karakterláncot ír a kódba, majd elfelejti bezárni az idézetet.

A kódban minden karakterláncot mindkét oldalon dupla idézőjelbe (") kell zárni. A kezdő programozók nagyon gyakran tesznek idézőjeleket a szöveg elejére, de elfelejtik bezárni a végén.

Íme néhány példa:

Hibás kód Helyes kód
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. A húrok összeragasztásánál elfelejtett pluszjelet adni

Egy másik gyakori hiba a húrokkal való munka során, hogy elfelejtenek pluszjelet írni a húrok összeragasztásánál. Ez a hiba különösen akkor fordul elő, ha a szöveg és a változók egy hosszú kifejezésben vannak összefűzve a kódban.

Íme néhány példa:

Hibás kód Helyes kód
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. Elfelejti bezárni a göndör fogszabályzót

Ez nagyon gyakori hiba. Két olyan helyzet van, amikor ez jellemző:

Első helyzet: Úgy döntöttél, hogy valahonnan kódot másolsz, és véletlenül kihagytál néhány göndör kapcsos zárójelet. Második szituáció: Egyszerűen nem zavarja magát, hogy megbizonyosodjon arról, hogy minden nyitott zárójelnek megfelel egy záró zárójel.

A hibák elkerülése érdekében a kezdő programozóknak általában azt javasolják, hogy a záró göndör kapcsos zárójelet írják a nyitó alá.

Példák:

Hibás kód Helyes kód
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. Elfelejtett zárójelet adni

Ezt a hibát leggyakrabban olyan fejlesztők követik el, akik olyan programozási nyelveket ismernek, amelyekhez hasonló helyzetekben nincs szükség zárójelekre.

Az egyik lehetőség az, hogy egyszerűen elfelejtenek zárójelet tenni a metódushívás végére:

if-elseEgy másik lehetőség, hogy elfelejtik zárójelbe tenni egy állítás feltételét .

Példák:

Hibás kód Helyes kód
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. A mainmetódus deklarációjának hibás írása

Amint kihirdetik a véres mainmódszert! Valószínűleg semmi sem botránkoztatja meg annyira az újoncokat, mint ez a rossz módszer. Fontos, hogy ilyenkor mindig meglepődnek, és csodálkoznak, miért nem indul el a programjuk?

És persze nem a programozó a hibás, hanem a program, a fordító, a kódellenőrző, a Java gép stb. A bűnbakok listája végtelen.

Példák:

Hibás kód Magyarázat
static void main(String[] args)
publichiányzik
public void main(String[] args)
statichiányzik
public main(String[] args)
voidhiányzik
void main(String[] args)
publicés statichiányoznak
public static void main(String args)
[]hiányzik
public static void main()
String[] argshiányzik
public static int main(String[] args)
Nekünk intvan helyettevoid


7. A fájl neve eltér az osztály nevétől

A Java szabvány szerint minden Java osztályt az osztálynévvel megegyező nevű fájlban kell tárolni. És ahogy korábban említettük, itt a betűk esete számít:

Fájl név Osztály név jegyzet
Solution.java
Solution
Minden rendben
Solutions.java
Solution
A fájlnévben egy felesleges betű találhatós
solution.java
Solution
A fájl neve kisbetűvel kezdődik
Solution.txt
Solution
A fájl kiterjesztése .txthelyett.java
Solution.java
solution
Az osztály neve kisbetűvel kezdődik

Valójában több osztály is deklarálható egy .java kiterjesztésű fájlban, de ezek közül csak az egyikben szerepelhet a szó publicaz osztály neve előtt. És ennek a névnek meg kell egyeznie a fájlnévvel.

A .java fájlnak mindig tartalmaznia kell egy osztályt, amelynek neve megegyezik a fájl nevével, és ennek az osztálynak rendelkeznie kell a publicmódosítóval. Példa:

Solution.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

Ezenkívül a Java nyelv lehetővé teszi, hogy osztályokat írjon az osztályokon belül. Ez egy másik módja a fenti korlátozás megkerülésének. Ha egy nyilvános osztály (egy osztály a módosítóval public) deklarálva van egy fájlban, és ugyanaz a neve, mint a fájlnév, akkor tetszőleges számú osztályt deklarálhat ebben a nyilvános osztályban. Ennek ellenére ezek többé nem lesznek hétköznapi órák. Ehelyett belső vagy beágyazott osztályok lesznek. Példa:

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

   public static class Pineapple
   {
   }
}


8. Elfelejtés írnipackage

Mivel a programok általában több ezer osztályt tartalmaznak, nehéz lehet mindegyiknek egyszerű, érthető és egyedi nevet találni. Ezért a Java-ban szokás az osztályokat a packagekulcsszó használatával csomagokba csoportosítani. Pontosan úgy, ahogy a fájlok mappákba vannak csoportosítva.

Ezért minden osztálynak a csomaghoz tartozó jelzéssel kell kezdődnie. Példa

Kód csomag nélkül Helyesbített példa
public class Solution
{
}
package com.codegym.tasks.task0001;

public class Solution
{
}


9. Elfelejtett hozzáadniimport

Ha valaki más osztályát szeretnénk használni a programunkban, akkor két lehetőségünk van: a kódunkban mindenhol a csomag nevét is be kell írni az osztály neve elé. Alternatív megoldásként egyszer leírhatjuk a teljes képzésű osztálynevet a kulcsszóval import.

Példa:

Import használata nélkül Importálás használata
public class Solution
{
   java.util.Scanner scanner = new java.util.Scanner();
}
import java.util.Scanner;

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

Mindkét opció működik, de ha egyszerűen beírod Scannera kódot anélkül, hogy hozzáadnád a -t import, akkor a fordító nem fogja tudni, hogy melyik csomagból kell átvennie az Scannerosztályt, és a programod nem fog lefordítani.