1. Забравяне на точка и запетая

Най-честата грешка, която правят амбициозните Java програмисти, е точката и запетая. Или по-скоро липсата му там, където трябва да бъде.

Всеки оператор в метод трябва да завършва с точка и запетая. Точката и запетая е това, което разделя изразите or командите: това е начинът, по който казваме на Java компилатора къде свършва една команда и къде започва следващата.

Примери за грешки:

грешен code Правилен 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?");


2. Забравяне на затваряне на кавички

Втората най-често срещана грешка за новодошлите в Java е да напишат низ в codeа и след това да забравят да затворят цитата.

Всеки низов литерал в codeа трябва да бъде ограден от двете страни с двойни кавички ("). Начинаещите програмисти много често поставят кавички в началото на текста, но забравят да ги затворят в края.

Ето няколко примера:

грешен code Правилен 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.";


3. Забравяте да включите знак плюс, когато залепвате струни

Друга често срещана грешка при работа с низове е да забравите да напишете знак плюс, когато залепвате низове. Тази грешка е особено често срещана, когато текстът и променливите са свързани в дълъг израз в codeа.

Ето няколко примера:

грешен code Правилен 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);


4. Забравяне на затваряне на фигурни скоби

Това е много често срещана грешка. Има две ситуации, при които това е типично:

Първа ситуация: Решихте да копирате code отнякъде и случайно сте пропуснали някои фигурни скоби. Втора ситуация: Вие просто не си давате труда да се уверите, че всяка отворена скоба съответства на затваряща скоба.

За да избегнат тези грешки, обикновено се препоръчва на начинаещите програмисти да напишат затварящата фигурна скоба под отварящата.

Примери:

грешен code Правилен 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!");
      }
   }
}


5. Забравяне на добавяне на скоби

Най-често тази грешка се прави от разработчици, които познават езици за програмиране, които не изискват скоби в подобни ситуации.

Една от възможностите е те просто да забравят да поставят скоби в края на извикване на метод:

Друга възможност е те да забравят да затворят conditionто на if-elseизраз в скоби.

Примери:

грешен code Правилен 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!");
   }
}


6. mainНеправилно писане на декларацията на метода

Щом обявяват кървавия mainметод! Вероятно нищо не спъва толкова много начинаещите, колкото този лош метод. Важното е, че след това винаги се изненадват и се чудят защо програмата им не тръгва?

И, разбира се, не програмистът е виновен, а програмата, компилаторът, валидаторът на codeа, Java машината и т.н. Списъкът с изкупителни жертви е безкраен.

Примери:

грешен code Обяснение
static void main(String[] args)
publicлипсва
public void main(String[] args)
staticлипсва
public main(String[] args)
voidлипсва
void main(String[] args)
publicи staticлипсват
public static void main(String args)
[]липсва
public static void main()
String[] argsлипсва
public static int main(String[] args)
Имаме intinstead ofvoid


7. Името на file е различно от името на класа

Съгласно стандарта на Java всички Java класове трябва да се съхраняват във файл със същото име като името на класа. И Howто споменахме по-рано, регистърът на буквите има meaning тук:

Име на файл Име на класа Забележка
Solution.java
Solution
Всичко е наред
Solutions.java
Solution
Името на file има излишна букваs
solution.java
Solution
Името на file започва с малка буква
Solution.txt
Solution
Разширението на file е .txtinstead of.java
Solution.java
solution
Името на класа започва с малка буква

Всъщност няколко класа могат да бъдат декларирани във файл с разширение .java, но само един от тях може да има думата publicпреди името на класа. И това е името, което трябва да съвпада с името на file.

Файлът .java винаги трябва да има клас, чието име е същото като името на file, и този клас трябва да има модификатора public. Пример:

Решение.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

Освен това езикът Java ви позволява да пишете класове в класове. Това е друг начин да заобиколите горното ограничение. Ако публичен клас (клас с publicмодификатора) е деклариран във файл и има същото име като името на file, тогава можете да декларирате колкото желаете класове в този публичен клас. Въпреки това, това вече няма да са обикновени класове. Вместо това те ще бъдат вътрешни or вложени класове. Пример:

Решение.java
public class Solution
{
   public class Apple
   {
   }

   public static class Pineapple
   {
   }
}


8. Забравяне на писанеpackage

Тъй като програмите обикновено имат хиляди класове, може да е трудно да се намерят прости, разбираеми и уникални имена за всички тях. Ето защо в Java е обичайно класовете да се групират в пакети с помощта на packageключовата дума. Точно по начина, по който файловете са групирани в папки.

Ето защо всеки клас трябва да започва с указание за пакета, към който принадлежи. Пример

Код без опаковка Коригиран пример
public class Solution
{
}
package com.codegym.tasks.task0001;

public class Solution
{
}


9. Забравяне на добавянеimport

Ако искаме да използваме нечий друг клас в нашата програма, имаме две възможности: навсякъде в нашия code трябва да напишем името на неговия пакет преди името на класа. Като алтернатива можем да напишем напълно квалифицираното име на клас с importключовата дума веднъж.

Пример:

Без използване на импорт Използване на импортиране
public class Solution
{
   java.util.Scanner scanner = new java.util.Scanner();
}
import java.util.Scanner;

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

И двете опции работят, но ако просто пишете Scannerвъв вашия code, без да добавяте import, тогава компилаторът няма да може да разбере от кой пакет трябва да вземе класа Scannerи вашата програма няма да компorра.