CodeGym /Java курс /All lectures for BG purposes /Популярни грешки при компилиране

Популярни грешки при компилиране

All lectures for BG purposes
Ниво , Урок
На разположение

„Хей, новобранец, който правиш куп грешки всеки ден, дори и в най-простите програми!

"Ъм... Здравей, Диего. Момче, наистина знаеш How да развеселиш хората!"

„Разбира се, че го правя! Научете се How да казвате това, което трябва да бъде казано. Както казах, „всеки ден“. Казано по-учтиво, поздравът ми означава „бъдещ успешен програмист, ако, разбира се, не го объркате ."

„Ооо, тогава благодаря ти, моят най-метален учител! .

„Ще ми благодарите след този урок. Тук ще изброя най-популярните грешки, отбелязани от компилатора. И вашата работа е да запомните. Предупреденият е предварително въоръжен.

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

„Най-често срещаната грешка, която правят амбициозните 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?");

Забравяме да затворим кавички

„Втората най-честа грешка за новодошлите в 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.";

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

„Друга често срещана грешка при работа с низове е забравянето да се напише знак плюс при залепване на низове. Тази грешка е особено често срещана, когато текстът и променливите са свързани в дълъг израз в 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);

Забравих да затворя фигурни скоби

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

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

"Вторият вариант е това, което правя. Понякога толкова се увличам, че забравям!" .

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

Примери:

грешен 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!");
      }
   }
}

Забравяме да добавим скоби

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

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

Друга възможност е те да забравят да затворят 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!");
   }
}

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

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

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

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

„Всъщност няколко класа могат да бъдат декларирани във файл с разширение .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
   {
   }
}

Забравяйки да пишаpackage

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

„Аха, затова всеки клас трябва да започва с указание за пакета, към който принадлежи.“

„Точно така. Ето един пример:

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

public class Solution
{
}

Забравих да добавя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ра.“

„Благодаря ти, Диего. Този урок ще ме накара да обърна повече внимание.“

"На това разчитах. Успех!"

Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION