"Hej, unga rekryt, som gör en massa misstag varje dag, även i de enklaste programmen!

"Ehm... Hej, Diego. Pojke, du vet verkligen hur man muntrar upp folk!"

"Självklart gör jag det! Lär dig hur man säger vad som behöver sägas. Som jag sa, 'varje dag'. Om du uttrycker det mer artigt betyder min hälsning "framtida framgångsrik programmerare, om du naturligtvis inte blåser det ."

"Oooh, tack då, min mest metalliska lärare! .

"Du kommer att tacka mig efter den här lektionen. Här kommer jag att lista de mest populära felen som noterats av kompilatorn. Och ditt jobb är att komma ihåg. Förvarnat är förbeväpnad.

Glömde ett semikolon

"Det vanligaste misstaget som blivande Java-programmerare gör är semikolon. Eller snarare, dess frånvaro där det borde vara."

"Sanningen är... jag har begått detta brott upprepade gånger."

"Varje sats inuti en metod måste sluta med ett semikolon. Semikolonet är det som skiljer satser eller kommandon åt: så här berättar vi för Java-kompilatorn var ett kommando slutar och nästa börjar.

Exempel på fel:

Inkorrekt kod Rätt kod
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?");

Glömde stänga offerter

"Det näst vanligaste misstaget för nykomlingar till Java är att skriva en sträng i koden och sedan glömma att stänga offerten.

Varje bokstavssträng i koden måste omges på båda sidor med dubbla citattecken ("). Nybörjare programmerare sätter ofta citattecken i början av texten, men de glömmer att stänga dem i slutet.

Inkorrekt kod Rätt kod
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.";

Glömde att ta med ett plustecken när man limmar ihop strängar

"Ett annat vanligt misstag när man arbetar med strängar är att man glömmer att skriva ett plustecken när man limmar ihop strängar. Detta fel är särskilt vanligt när text och variabler sammanfogas i ett långt uttryck i kod.

Här är några exempel:

Inkorrekt kod Rätt kod
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);

Glömde stänga lockiga hängslen

"Detta är ett mycket vanligt misstag. Det finns två situationer där detta är typiskt:

  1. Du bestämde dig för att kopiera kod från någonstans och missade av misstag några lockiga hängslen.
  2. Du bryr dig helt enkelt inte om att se till att varje öppen parentes matchas av en avslutande parentes."

"Det andra alternativet är vad jag gör. Ibland blir jag så medtagen att jag glömmer!" .

"För att undvika dessa fel, rekommenderas det vanligtvis för nybörjare programmerare att skriva den avslutande lockiga hängslen under den öppnande.

Exempel:

Inkorrekt kod Rätt kod
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!");
      }
   }
}

Glömde lägga till parenteser

"Oftast görs detta misstag av utvecklare som kan programmeringsspråk som inte kräver parenteser i liknande situationer.

En möjlighet är att de helt enkelt glömmer att sätta parenteser i slutet av ett metodanrop:

En annan möjlighet är att de glömmer att linda in ett uttalandes tillstånd if-elseinom parentes.

Exempel:

Inkorrekt kod Rätt kod
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!");
   }
}

Att skriva mainmetoddeklarationen felaktigt

"Så fort de deklarerar den jävla mainmetoden! Det finns förmodligen ingenting som gör nybörjare så illa ute som den här dåliga metoden. Viktigt, då blir de alltid förvånade och undrar varför deras program inte startar? Och naturligtvis är programmeraren inte Inte att skylla på, men programmet, kompilatorn, kodvalideraren, Java-maskinen, etc. Listan över syndabockar är oändlig.

Exempel:

Inkorrekt kod Förklaring
static void main(String[] args)
publicsaknas
public void main(String[] args)
staticsaknas
public main(String[] args)
voidsaknas
void main(String[] args)
publicoch staticsaknas
public static void main(String args)
[]saknas
public static void main()
String[] argssaknas
public static int main(String args)
Vi har intistället förvoid

Filnamnet skiljer sig från klassnamnet

"Enligt Java-standarden måste alla Java-klasser lagras i en fil med samma namn som klassnamnet. Och som nämnts tidigare är det här fallet med bokstäverna som spelar roll:

Filnamn Klassnamn Notera
Solution.java Lösning Allt är bra
Lösning med .java Lösning Filnamnet som en överflödig bokstav "s"
s olution.java Lösning Filnamnet börjar med en liten bokstav
Lösning. Text Lösning Filtillägget är .txt istället för .java
Solution.java lösning Klassnamnet börjar med en liten bokstav

"Egentligen kan flera klasser deklareras i en fil med filtillägget .java, men bara en av dem kan ha ordet publicföre klassnamnet. Och detta är namnet som måste matcha filnamnet.

"En .java-fil måste alltid ha en klass vars namn är detsamma som filnamnet, och den klassen måste ha modifieraren. publicExempel:

Solution.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

"Dessutom låter Java-språket dig skriva klasser inom klasser. Detta är ett annat sätt att komma runt ovanstående begränsning. Om en offentlig klass (en klass med modifieraren) publicdeklareras i en fil och har samma namn som filnamnet, sedan kan du deklarera hur många klasser du vill i den här offentliga klassen. Som sagt, dessa kommer inte längre att vara vanliga klasser. Istället kommer de att vara interna eller kapslade klasser. Exempel:

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

   public static class Pineapple
   {
   }
}

glömmer att skrivapackage

"Eftersom program vanligtvis har tusentals klasser kan det vara svårt att hitta enkla, begripliga och unika namn för dem alla. Det är därför det i Java är vanligt att gruppera klasser i paket med nyckelordet. Exakt så som filerna är packagegrupperade i mappar."

"Ah-ha, så det är därför varje klass ska börja med en indikation på paketet som den tillhör."

"Precis. Här är ett exempel:

Kod utan paket Rättade exempel
public class Solution
{
}
package en.codegym.tasks.task0001;

public class Solution
{
}

Glömde lägga tillimport

"Om vi ​​vill använda någon annans klass i vårt program har vi två alternativ: överallt i vår kod måste vi också skriva dess paketnamn före namnet på klassen. Alternativt kan vi skriva det fullständiga klassnamnet med nyckelordet en importgång Exempel:

Utan att använda import Använder import
public class Solution
{
   java.util.Scanner scanner = new java.util.Scanner();
}
import java.util.Scanner;

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

"Båda alternativen fungerar, men om du bara skriver Scanneri din kod utan att lägga till importkommer kompilatorn inte att kunna förstå vilket paket den behöver ta klassen Scannerfrån, och ditt program kommer inte att kompilera."

"Tack, Diego. Den här lektionen kommer att få mig att ägna mer uppmärksamhet."

"Det var det jag räknade med. Lycka till!"