„Hei, tânără recrută, care face o grămadă de greșeli în fiecare zi, chiar și în cele mai simple programe!

"Hm... Bună, Diego. Băiete, chiar știi să înveselești oamenii!"

„Bineînțeles, da! Învață să spui ce trebuie spus. Așa cum am spus, „în fiecare zi”. Punând-o mai politicos, salutul meu înseamnă „viitor programator de succes, dacă, bineînțeles, nu vei sufla ."

„Oooh, atunci mulțumesc, cel mai metalic profesor al meu! .

„Îmi vei mulțumi după această lecție. Aici voi enumera cele mai populare erori observate de compilator. Și treaba ta este să-ți amintești.

Uitând punct și virgulă

„Cea mai frecventă greșeală pe care o fac programatorii Java care aspiră este punctul și virgulă. Sau, mai degrabă, absența lui acolo unde ar trebui să fie.”

— Adevărul este că... am comis această infracțiune în mod repetat.

„Fiecare instrucțiune din interiorul unei metode trebuie să se termine cu punct și virgulă. Punctul și virgulă este ceea ce separă instrucțiunile sau comenzile: așa îi spunem compilatorului Java unde se termină o comandă și începe următoarea.

Exemple de erori:

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

Am uitat să închid ghilimele

„A doua cea mai frecventă greșeală pentru nou-veniți la Java este scrierea unui șir în cod și apoi uitarea de a închide citatul.

Fiecare șir literal din cod trebuie să fie închis pe ambele părți cu ghilimele duble ("). Programatorii începători pun foarte des ghilimele la începutul textului, dar uită să le închidă la sfârșit.

Cod incorect Cod corect
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.";

Ați uitat să includeți un semn plus atunci când lipiți șiruri

„O altă greșeală comună atunci când lucrați cu șiruri este uitarea de a scrie un semn plus atunci când lipiți șirurile împreună. Această eroare este predominantă în special atunci când textul și variabilele sunt concatenate într-o expresie lungă în cod.

Aici sunt cateva exemple:

Cod incorect Cod corect
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);

Uitând să închideți bretele

„Aceasta este o greșeală foarte frecventă. Există două situații în care acest lucru este tipic:

  1. Te-ai decis să copiezi codul de undeva și ai ratat din greșeală niște bretele.
  2. Pur și simplu nu vă deranjați să vă asigurați că fiecare paranteză deschisă este însoțită de o paranteză de închidere.”

"A doua opțiune este ceea ce fac. Uneori mă las atât de purtat încât uit!" .

„Pentru a evita aceste erori, se recomandă de obicei programatorilor începători să scrie bretelele de închidere sub cea de deschidere.

Exemple:

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

Am uitat să adăugați paranteze

„De cele mai multe ori această greșeală este făcută de dezvoltatori care cunosc limbaje de programare care nu necesită paranteze în situații similare.

O posibilitate este ca pur și simplu să uite să pună paranteze la sfârșitul unui apel de metodă:

O altă posibilitate este că ei uită să învelească condiția unei if-elsedeclarații între paranteze.

Exemple:

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

Scrierea mainincorect a declarației metodei

„De îndată ce declară mainmetoda sângeroasă! Probabil că nu există nimic care să-i împiedice pe începători la fel de mult ca această proastă metodă. Important, atunci ei sunt întotdeauna surprinși și se întreabă de ce programul lor nu începe? Și, desigur, programatorul nu este. Nu sunt de vină, dar programul, compilatorul, validatorul de cod, mașina Java etc. Lista țapilor ispășitori este nesfârșită.

Exemple:

Cod incorect Explicaţie
static void main(String[] args)
publiclipseste
public void main(String[] args)
staticlipseste
public main(String[] args)
voidlipseste
void main(String[] args)
publicsi staticlipsesc
public static void main(String args)
[]lipseste
public static void main()
String[] argslipseste
public static int main(String args)
Avem intîn loc devoid

Numele fișierului este diferit de numele clasei

„Conform standardului Java, toate clasele Java trebuie să fie stocate într-un fișier cu același nume cu numele clasei. Și așa cum am menționat mai devreme, cazul literelor contează aici:

Nume de fișier Numele clasei Notă
Soluție.java Soluţie Totul e bine
Soluția s .java Soluţie Numele fișierului ca o literă „s” de prisos
s olutie.java Soluţie Numele fișierului începe cu o literă mică
Soluţie. TXT Soluţie Extensia fișierului este .txt în loc de .java
Soluție.java soluţie Numele clasei începe cu o literă mică

„De fapt, mai multe clase pot fi declarate într-un fișier cu extensia .java, dar numai una dintre ele poate avea cuvântul publicînaintea numelui clasei. Și acesta este numele care trebuie să se potrivească cu numele fișierului.

„Un fișier .java trebuie să aibă întotdeauna o clasă al cărei nume este același cu numele fișierului, iar acea clasă trebuie să aibă modificatorul public. Exemplu:

Soluție.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

„În plus, limbajul Java vă permite să scrieți clase în cadrul claselor. Aceasta este o altă modalitate de a ocoli limitarea de mai sus. Dacă o clasă publică (o clasă cu modificatorul) este declarată publicîntr-un fișier și are același nume cu numele fișierului, atunci puteți declara câte clase doriți în cadrul acestei clase publice. Acestea fiind spuse, acestea nu vor mai fi clase obișnuite. În schimb, vor fi clase interne sau imbricate. Exemplu:

Soluție.java
public class Solution
{
   public class Apple
   {
   }

   public static class Pineapple
   {
   }
}

Am uitat să scriupackage

„Din moment ce programele au de obicei mii de clase, poate fi dificil să găsești nume simple, ușor de înțeles și unice pentru toate. De aceea, în Java se obișnuiește gruparea claselor în pachete folosind cuvântul cheie. Exact modul în care sunt grupate fișierele package. în foldere”.

"Ah-ha, de aceea fiecare clasă ar trebui să înceapă cu o indicație a pachetului căruia îi aparține."

„Exact. Iată un exemplu:

Cod fara pachet Exemplu corectat
public class Solution
{
}
package en.codegym.tasks.task0001;

public class Solution
{
}

Am uitat să adaugiimport

„Dacă dorim să folosim clasa altcuiva în programul nostru, avem două opțiuni: peste tot în codul nostru trebuie să scriem și numele pachetului său înaintea numelui clasei. Alternativ, putem scrie numele complet calificat al clasei cu cuvântul cheie o dată import. . Exemplu:

Fără a utiliza importul Folosind import
public class Solution
{
   java.util.Scanner scanner = new java.util.Scanner();
}
import java.util.Scanner;

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

„Ambele opțiuni funcționează, dar dacă pur și simplu scrieți Scannerîn codul dvs. fără să adăugați import, atunci compilatorul nu va putea înțelege din ce pachet trebuie să ia clasa Scanner, iar programul dumneavoastră nu se va compila.”

"Mulțumesc, Diego. Această lecție mă va face să acord mai multă atenție."

"Pe asta mă bazam. Mult succes!"