„Hej, młody rekrutu, który codziennie popełnia masę błędów, nawet w najprostszych programach!

„Um… Cześć, Diego. Chłopcze, naprawdę wiesz, jak rozweselić ludzi!”

„Oczywiście, że tak! Naucz się mówić to, co należy powiedzieć. Jak powiedziałem, „codziennie”. Ujmując to grzeczniej, moje powitanie oznacza „przyszły odnoszący sukcesy programista, jeśli oczywiście tego nie schrzanisz ”.

„Oooh, w takim razie dziękuję, mój najbardziej metaliczny nauczycielu! .

„Po tej lekcji podziękujesz mi. Oto lista najpopularniejszych błędów wykrytych przez kompilator. A twoim zadaniem jest zapamiętać. Przezorny jest uzbrojony.

Zapominanie o średniku

„Najczęstszy błąd popełniany przez początkujących programistów Java dotyczy średnika. A raczej jego braku tam, gdzie powinien”.

„Prawda jest taka, że ​​wielokrotnie popełniałem to przestępstwo”.

„Każda instrukcja wewnątrz metody musi kończyć się średnikiem. Średnik oddziela instrukcje lub polecenia: w ten sposób informujemy kompilator Java, gdzie kończy się jedno polecenie, a zaczyna następne.

Przykłady błędów:

błędny kod Poprawny 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?");

Zapominanie o zamknięciu cudzysłowów

„Drugim najczęstszym błędem popełnianym przez nowicjuszy w Javie jest wpisanie ciągu znaków w kodzie, a następnie zapomnienie o zamknięciu cudzysłowu.

Każdy literał łańcuchowy w kodzie musi być ujęty z obu stron w podwójny cudzysłów ("). Początkujący programiści bardzo często stawiają cudzysłów na początku tekstu, ale zapominają go zamknąć na końcu.

błędny kod Poprawny 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.";

Zapominanie o dodaniu znaku plus podczas sklejania sznurków

„Innym częstym błędem podczas pracy z ciągami znaków jest zapominanie o wpisaniu znaku plus podczas sklejania ciągów znaków. Ten błąd jest szczególnie powszechny, gdy tekst i zmienne są łączone w długie wyrażenie w kodzie.

Oto kilka przykładów:

błędny kod Poprawny 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);

Zapominanie o zamknięciu nawiasów klamrowych

„To bardzo częsty błąd. Istnieją dwie sytuacje, w których jest to typowe:

  1. Postanowiłeś skądś skopiować kod i przypadkowo przegapiłeś kilka nawiasów klamrowych.
  2. Po prostu nie zawracasz sobie głowy upewnianiem się, że każdemu nawiasowi otwierającemu odpowiada nawias zamykający”.

„Drugą opcją jest to, co robię. Czasami daję się tak ponieść emocjom, że zapominam!” .

„Aby uniknąć tych błędów, zwykle zaleca się początkującym programistom zapisanie zamykającego nawiasu klamrowego pod otwierającym.

Przykłady:

błędny kod Poprawny 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!");
      }
   }
}

Zapominanie o dodaniu nawiasów

„Najczęściej ten błąd popełniają programiści, którzy znają języki programowania, które nie wymagają nawiasów w podobnych sytuacjach.

Jedną z możliwości jest to, że po prostu zapominają umieścić nawiasy na końcu wywołania metody:

Inną możliwością jest to, że zapomnieli umieścić warunek instrukcji if-elsew nawiasach.

Przykłady:

błędny kod Poprawny 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!");
   }
}

mainNiepoprawne pisanie deklaracji metody

„Jak tylko zadeklarują tę cholerną mainmetodę! Chyba nic tak nie wkurza nowicjuszy, jak ta kiepska metoda. Co ważne, zawsze są wtedy zaskoczeni i zastanawiają się, dlaczego ich program się nie uruchamia? No i oczywiście programista nie To nie wina, ale program, kompilator, walidator kodu, maszyna Java itp. Lista kozłów ofiarnych nie ma końca.

Przykłady:

błędny kod Wyjaśnienie
static void main(String[] args)
publicbrakuje
public void main(String[] args)
staticbrakuje
public main(String[] args)
voidbrakuje
void main(String[] args)
publici staticbrakuje
public static void main(String args)
[]brakuje
public static void main()
String[] argsbrakuje
public static int main(String args)
Mamy intzamiastvoid

Nazwa pliku różni się od nazwy klasy

„Zgodnie ze standardem Java wszystkie klasy Java muszą być przechowywane w pliku o tej samej nazwie co nazwa klasy. I jak wspomniano wcześniej, wielkość liter ma tutaj znaczenie:

Nazwa pliku Nazwa klasy Notatka
Rozwiązanie.java Rozwiązanie Wszystko w porządku
Rozwiązanie s .java Rozwiązanie Nazwa pliku jako zbędna litera „s”
rozwiązanie.java _ Rozwiązanie Nazwa pliku zaczyna się od małej litery
Rozwiązanie. tekst Rozwiązanie Rozszerzenie pliku to .txt zamiast .java
Rozwiązanie.java rozwiązanie Nazwa klasy zaczyna się od małej litery

„W rzeczywistości w pliku z rozszerzeniem .java można zadeklarować kilka klas, ale tylko jedna z nich może mieć to słowo publicprzed nazwą klasy. I to jest nazwa, która musi pasować do nazwy pliku.

„Plik .java musi zawsze mieć klasę, której nazwa jest taka sama jak nazwa pliku, a ta klasa musi mieć modyfikator public. Przykład:

Rozwiązanie.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

„Dodatkowo język Java umożliwia pisanie klas w klasach. Jest to kolejny sposób na obejście powyższego ograniczenia. Jeśli klasa publiczna (klasa z modyfikatorem public) jest zadeklarowana w pliku i ma taką samą nazwę jak nazwa pliku, następnie możesz zadeklarować dowolną liczbę klas w tej klasie publicznej. To powiedziawszy, nie będą to już zwykłe klasy. Zamiast tego będą to klasy wewnętrzne lub zagnieżdżone. Przykład:

Rozwiązanie.java
public class Solution
{
   public class Apple
   {
   }

   public static class Pineapple
   {
   }
}

Zapominając napisaćpackage

„Ponieważ programy mają zwykle tysiące klas, znalezienie prostych, zrozumiałych i unikalnych nazw dla nich wszystkich może być trudne. Dlatego w Javie zwyczajowo grupuje się klasy w pakiety za pomocą słowa kluczowego. Dokładnie tak, jak grupowane są packagepliki do folderów”.

„Ah-ha, więc dlatego każde zajęcia powinny zaczynać się od wskazania paczki, do której należą”.

„Dokładnie. Oto przykład:

Kod bez opakowania Poprawiony przykład
public class Solution
{
}
package en.codegym.tasks.task0001;

public class Solution
{
}

Zapominając dodaćimport

„Jeżeli chcemy użyć w naszym programie czyjejś klasy, mamy dwie możliwości: wszędzie w naszym kodzie musimy również wpisać jej nazwę pakietu przed nazwą klasy. Alternatywnie możemy wpisać w pełni kwalifikowaną nazwę klasy za pomocą słowa kluczowego importraz . Przykład:

Bez użycia importu Korzystanie z importu
public class Solution
{
   java.util.Scanner scanner = new java.util.Scanner();
}
import java.util.Scanner;

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

„Obie opcje działają, ale jeśli po prostu napiszesz Scannerswój kod bez dodawania import, kompilator nie będzie w stanie zrozumieć, Scannerz którego pakietu musi pobrać klasę, a program się nie skompiluje”.

„Dziękuję, Diego. Ta lekcja sprawi, że będę bardziej uważny”.

- Właśnie na to liczyłem. Powodzenia!