"Hoy, batang recruit, na gumagawa ng isang grupo ng mga pagkakamali araw-araw, kahit na sa pinakasimpleng mga programa!

"Um... Hi, Diego. Boy, marunong ka talagang magpasaya ng tao!"

"Of course, I do! Matuto kung paano sabihin kung ano ang kailangang sabihin. Tulad ng sinabi ko, 'araw-araw'. Ang paglalagay nito nang mas magalang, ang ibig sabihin ng pagbati ko ay "future successful programmer, kung, siyempre, hindi mo ito sasabog. ."

"Oooh, mabuti naman, salamat, ang aking pinaka-metal na guro! .

"Pasasalamatan mo ako pagkatapos ng araling ito. Dito ko ililista ang pinakasikat na mga error na nabanggit ng compiler. At ang iyong trabaho ay tandaan. Forewarned is forearmed.

Nakakalimutan ang isang semicolon

"Ang pinakakaraniwang pagkakamali na ginagawa ng mga naghahangad na Java programmer ay ang semicolon. O sa halip, ang kawalan nito kung saan ito dapat."

"Ang totoo... paulit-ulit kong ginawa ang kasalanang ito."

"Ang bawat pahayag sa loob ng isang pamamaraan ay dapat magtapos sa isang tuldok-kuwit. Ang tuldok-kuwit ay kung ano ang naghihiwalay sa mga pahayag o utos: ito ay kung paano natin sasabihin sa Java compiler kung saan nagtatapos ang isang utos at ang susunod ay nagsisimula.

Mga halimbawa ng mga error:

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

Nakakalimutang isara ang mga quotes

"Ang pangalawang pinakakaraniwang pagkakamali para sa mga bagong dating sa Java ay ang pagsulat ng isang string sa code at pagkatapos ay nakakalimutang isara ang quote.

Ang bawat string na literal sa code ay dapat na nakapaloob sa magkabilang panig na may dobleng panipi ("). Ang mga nagsisimulang programmer ay madalas na naglalagay ng mga panipi sa simula ng teksto, ngunit nakalimutan nilang isara ang mga ito sa dulo.

Maling code Tamang code
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.";

Nakakalimutang magsama ng plus sign kapag pinagdikit ang mga string

"Ang isa pang karaniwang pagkakamali kapag nagtatrabaho sa mga string ay nakakalimutang magsulat ng plus sign kapag pinagdikit ang mga string. Laganap ang error na ito lalo na kapag pinagsama-sama ang text at mga variable sa mahabang expression sa code.

Narito ang ilang halimbawa:

Maling code Tamang code
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);

Nakakalimutang isara ang mga kulot na braces

"Ito ay isang napakakaraniwang pagkakamali. Mayroong dalawang sitwasyon kung saan ito ay karaniwan:

  1. Nagpasya kang kumopya ng code mula sa isang lugar at hindi sinasadyang napalampas ang ilang kulot na braces.
  2. Hindi mo lang pinoproblema ang iyong sarili upang matiyak na ang bawat bukas na panaklong ay tumutugma sa isang pansarang panaklong."

"The second option is what I do. Minsan masyado akong nadadala kaya nakakalimutan ko!" .

"Upang maiwasan ang mga error na ito, kadalasang inirerekomenda para sa mga baguhan na programmer na isulat ang closing curly brace sa ilalim ng opening one.

Mga halimbawa:

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

Nakakalimutang magdagdag ng mga panaklong

"Kadalasan ang pagkakamaling ito ay ginawa ng mga developer na nakakaalam ng mga programming language na hindi nangangailangan ng mga panaklong sa mga katulad na sitwasyon.

Ang isang posibilidad ay nakalimutan lang nilang maglagay ng mga panaklong sa dulo ng isang method call:

Ang isa pang posibilidad ay nakalimutan nilang balutin ang kondisyon ng isang if-elsepahayag sa panaklong.

Mga halimbawa:

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

mainMaling pagsulat ng paraan ng deklarasyon

"As soon as they declare the bloody mainmethod! Wala na sigurong nakakatrip sa mga newbies gaya ng poor method na ito. Ang importante, tapos lagi silang nagtataka at nagtataka kung bakit hindi magsisimula ang program nila? And, of course, the programmer isn Hindi dapat sisihin, ngunit ang programa, ang compiler, ang code validator, ang Java machine, atbp. Ang listahan ng mga scapegoat ay walang katapusan.

Mga halimbawa:

Maling code Paliwanag
static void main(String[] args)
publicay nawawala
public void main(String[] args)
staticay nawawala
public main(String[] args)
voiday nawawala
void main(String[] args)
publicat staticnawawala
public static void main(String args)
[]ay nawawala
public static void main()
String[] argsay nawawala
public static int main(String args)
Mayroon kaming intsa halip navoid

Ang pangalan ng file ay iba sa pangalan ng klase

"Ayon sa pamantayan ng Java, ang lahat ng mga klase ng Java ay dapat na naka-imbak sa isang file na may parehong pangalan ng pangalan ng klase. At tulad ng nabanggit kanina, ang kaso ng mga titik ay mahalaga dito:

Pangalan ng file Pangalan ng klase Tandaan
Solution.java Solusyon Maayos ang lahat
Solusyon s .java Solusyon Ang pangalan ng file bilang isang labis na titik na 's'
s olution.java Solusyon Ang pangalan ng file ay nagsisimula sa isang maliit na titik
Solusyon. txt Solusyon Ang extension ng file ay .txt sa halip na .java
Solution.java solusyon Ang pangalan ng klase ay nagsisimula sa isang maliit na titik

"Sa totoo lang, maraming klase ang maaaring ideklara sa isang file na may extension na .java, ngunit isa lamang sa kanila ang maaaring magkaroon ng salita publicbago ang pangalan ng klase. At ito ang pangalan na dapat tumugma sa pangalan ng file.

"Ang isang .java file ay dapat palaging may isang klase na ang pangalan ay kapareho ng pangalan ng file, at ang klase ay kailangang magkaroon ng publicmodifier. Halimbawa:

Solution.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

"Bukod pa rito, hinahayaan ka ng wikang Java na magsulat ng mga klase sa loob ng mga klase. Ito ay isa pang paraan upang makayanan ang limitasyon sa itaas. Kung ang isang pampublikong klase (isang klase na may modifier) public​​ay idineklara sa isang file at may parehong pangalan sa pangalan ng file, pagkatapos ay maaari kang magdeklara ng maraming klase hangga't gusto mo sa loob ng pampublikong klase na ito. Sabi nga, hindi na ito magiging mga ordinaryong klase. Sa halip, magiging mga panloob o nested na klase ang mga ito. Halimbawa:

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

   public static class Pineapple
   {
   }
}

Nakakalimutang magsulatpackage

"Dahil ang mga programa ay karaniwang may libu-libong mga klase, maaaring mahirap makahanap ng simple, naiintindihan, at natatanging mga pangalan para sa lahat ng mga ito. Kaya't sa Java ay kaugalian na igrupo ang mga klase sa mga pakete gamit ang keyword. Eksakto sa paraan ng pag-grupo ng mga packagefile sa mga folder."

"Ah-ha, kaya nga ang bawat klase ay dapat magsimula sa isang indikasyon ng pakete kung saan ito nabibilang."

"Eksakto. Narito ang isang halimbawa:

Code na walang package Nawastong halimbawa
public class Solution
{
}
package en.codegym.tasks.task0001;

public class Solution
{
}

Nakakalimutang magdagdagimport

"Kung gusto naming gumamit ng klase ng ibang tao sa aming programa, mayroon kaming dalawang pagpipilian: saanman sa aming code dapat din naming isulat ang pangalan ng package nito bago ang pangalan ng klase. Bilang kahalili, maaari naming isulat ang ganap na kwalipikadong pangalan ng klase gamit ang keyword nang isang importbeses Halimbawa:

Nang hindi gumagamit ng pag-import Gamit ang import
public class Solution
{
   java.util.Scanner scanner = new java.util.Scanner();
}
import java.util.Scanner;

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

"Gumagana ang parehong mga opsyon, ngunit kung isusulat mo lang Scannersa iyong code nang hindi idinagdag import, hindi mauunawaan ng compiler kung aling pakete ang kailangan nitong kunin ang Scannerklase, at hindi mag-compile ang iyong program."

"Salamat, Diego. Itong lesson na ito ang magpapapansin sa akin."

"Yun ang inaasahan ko. Good luck!"