"Hej, unge rekrut, som laver en masse fejl hver dag, selv i de mest simple programmer!

"Øh... Hej, Diego. Dreng, du ved virkelig, hvordan man muntrer folk op!"

"Selvfølgelig gør jeg det! Lær at sige, hvad der skal siges. Som jeg sagde, 'hver dag'. For at sige det mere høfligt, betyder min hilsen "fremtidig succesfuld programmør, hvis du selvfølgelig ikke blæser den ."

"Åh, ja tak, min mest metalliske lærer! .

"Du vil takke mig efter denne lektion. Her vil jeg liste de mest populære fejl noteret af compileren. Og din opgave er at huske. Forvarslet er forearmed.

Glemte et semikolon

"Den mest almindelige fejl, som håbefulde Java-programmører begår, involverer semikolon. Eller rettere sagt, dets fravær, hvor det burde være."

"Sandheden er... Jeg har begået denne lovovertrædelse gentagne gange."

"Hvert udsagn inde i en metode skal ende med et semikolon. Semikolonet er det, der adskiller udsagn eller kommandoer: Sådan fortæller vi Java-kompileren, hvor den ene kommando slutter og den næste begynder.

Eksempler på fejl:

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

Glemte at lukke tilbud

"Den næstmest almindelige fejl for nybegyndere til Java er at skrive en streng i koden og så glemme at lukke citatet.

Hver streng i koden skal omgives på begge sider med dobbelte anførselstegn ("). Begyndere programmører sætter meget ofte anførselstegn i begyndelsen af ​​teksten, men de glemmer at lukke dem i slutningen.

Forkert kode Korrekt kode
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.";

Glemte at inkludere et plustegn, når du limer strenge sammen

"En anden almindelig fejl, når man arbejder med strenge, er at glemme at skrive et plustegn, når man limer strenge sammen. Denne fejl er især udbredt, når tekst og variable er sammenkædet i et langt udtryk i kode.

Her er nogle eksempler:

Forkert kode Korrekt kode
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);

Glemte at lukke krøllede seler

"Dette er en meget almindelig fejl. Der er to situationer, hvor dette er typisk:

  1. Du besluttede dig for at kopiere kode fra et sted og gik ved et uheld glip af nogle krøllede seler.
  2. Du besværer simpelthen ikke dig selv for at sikre, at hver åben parentes matches af en afsluttende parentes."

"Den anden mulighed er, hvad jeg gør. Nogle gange bliver jeg så revet med, at jeg glemmer!" .

"For at undgå disse fejl anbefales det normalt for begyndere programmører at skrive den afsluttende krøllede bøjle under den åbnende.

Eksempler:

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

Glemte at tilføje parenteser

"Oftest er denne fejl begået af udviklere, der kender programmeringssprog, der ikke kræver parentes i lignende situationer.

En mulighed er, at de simpelthen glemmer at sætte parenteser i slutningen af ​​et metodekald:

En anden mulighed er, at de glemmer at pakke en erklærings tilstand if-elseind i parentes.

Eksempler:

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

At skrive mainmetodedeklarationen forkert

"Så snart de erklærer den blodige mainmetode! Der er formentlig ikke noget, der falder nybegyndere så meget i øjnene som denne dårlige metode. Vigtigt, så bliver de altid overraskede og undrer sig over, hvorfor deres program ikke starter? Og selvfølgelig er programmøren ikke Det er ikke skylden, men programmet, compileren, kodevalidatoren, Java-maskinen osv. Listen over syndebukke er uendelig.

Eksempler:

Forkert kode Forklaring
static void main(String[] args)
publicmangler
public void main(String[] args)
staticmangler
public main(String[] args)
voidmangler
void main(String[] args)
publicog staticmangler
public static void main(String args)
[]mangler
public static void main()
String[] argsmangler
public static int main(String args)
Vi har i intstedet forvoid

Filnavnet er forskelligt fra klassenavnet

"Ifølge Java-standarden skal alle Java-klasser gemmes i en fil med samme navn som klassenavnet. Og som nævnt tidligere, så har bogstavernes store og små betydning her:

Filnavn Klassenavn Bemærk
Solution.java Løsning Alt er fint
Løsning med .java Løsning Filnavnet som et overflødigt bogstav 's'
s løsning.java Løsning Filnavnet starter med et lille bogstav
Løsning. txt Løsning Filtypenavnet er .txt i stedet for .java
Solution.java løsning Klassenavnet starter med et lille bogstav

"Faktisk kan flere klasser erklæres i en fil med filtypenavnet .java, men kun én af dem kan have ordet publicfør klassenavnet. Og det er det navn, der skal matche filnavnet.

"En .java-fil skal altid have en klasse, hvis navn er det samme som filnavnet, og den klasse skal have modifikatoren public. Eksempel:

Solution.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

"Yderligere giver Java-sproget dig mulighed for at skrive klasser inden for klasser. Dette er en anden måde at komme uden om ovenstående begrænsning. Hvis en offentlig klasse (en klasse med modifieren) publicer erklæret i en fil og har samme navn som filnavnet, så kan du erklære så mange klasser, som du vil i denne offentlige klasse. Når det er sagt, vil disse ikke længere være almindelige klasser. I stedet vil de være interne eller indlejrede klasser. Eksempel:

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

   public static class Pineapple
   {
   }
}

Glemmer at skrivepackage

"Da programmer normalt har tusindvis af klasser, kan det være svært at finde enkle, forståelige og unikke navne til dem alle. Derfor er det i Java sædvanligt at gruppere klasser i pakker ved hjælp af nøgleordet. Præcis den måde filerne er grupperet på package. i mapper."

"Ah-ha, så det er derfor, hver klasse skal begynde med en indikation af den pakke, den tilhører."

"Nøjagtigt. Her er et eksempel:

Kode uden pakke Rettet eksempel
public class Solution
{
}
package en.codegym.tasks.task0001;

public class Solution
{
}

Glemte at tilføjeimport

"Hvis vi vil bruge en andens klasse i vores program, har vi to muligheder: overalt i vores kode skal vi også skrive dens pakkenavn før navnet på klassen. Alternativt kan vi skrive det fuldt kvalificerede klassenavn med nøgleordet én importgang Eksempel:

Uden at bruge import Brug af import
public class Solution
{
   java.util.Scanner scanner = new java.util.Scanner();
}
import java.util.Scanner;

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

"Begge muligheder virker, men hvis du blot skriver Scanneri din kode uden at tilføje import, så vil compileren ikke være i stand til at forstå, hvilken pakke den skal tage klassen Scannerfra, og dit program vil ikke kompilere."

"Tak, Diego. Denne lektion vil få mig til at være mere opmærksom."

"Det var det, jeg regnede med. Held og lykke!"