— Здравствуй, салага, который каждый день делает кучу ошибок даже в простейших программах!
— Эм… Привет, Диего. Однако умеешь ты приободрить!.
— Конечно умею! Умей зреть в суть. Сказано же — “каждый день”. В переводе с мизантропического эта фраза значит “будущий успешный программист, если, конечно, не забьет”.
— Ооо, ну тогда спасибо, о самый металлический мой учитель!.
— Благодарить будешь после этой лекции. В ней я тебе перечислю самые популярные ошибки, которые замечает компилятор. Ну а ты запоминай. Предупреждён — вооружён.
Забыли точку с запятой
— Самая частая ошибка начинающих программистов Java — это точка с запятой. Вернее, отсутствие её там, где она должна быть.
— Чистая правда… Грешил этим неоднократно..
— Каждая команда внутри метода должна заканчиваться точкой с запятой. Точка с запятой — это разделитель команд: таким образом мы даем понять Java-компилятору, где заканчивается одна команда и начинается следующая.
Примеры ошибочных ситуаций:
Код с ошибками | Исправленный код |
---|---|
|
|
|
|
|
|
Забыли закрыть кавычки
— Вторая самая популярная ошибка новичков в Java — написать в коде строку и забыть закрыть кавычки.
Каждая строка в коде должна быть с двух сторон обрамлена двойными кавычками — «"». Начинающие программисты очень часто пишут кавычки в начале текста, но забывают закрыть их в конце.
Код с ошибками | Исправленный код |
---|---|
|
|
|
|
|
|
Забыли знак плюс при склеивании строк
— Еще одна частая ошибка при работе со строками — забыли написать знак плюс при склеивании строк. Особенно часто эта ошибка возникает, когда в коде в длинном выражении склеивается текст и переменные.
Примеры таких ситуаций:
Код с ошибками | Исправленный код |
---|---|
|
|
|
|
|
|
Забыли закрыть фигурные скобки
— Это очень распространенная ошибка. Обычно она возникает в двух случаях:
- Ты решил скопировать откуда-то код и случайно пропустил некоторые фигурные скобки.
- Ты вообще не следишь за тем, чтобы каждой открывающей скобке соответствовала закрывающая скобка.
— Второй случай — это мой вариант. Иногда так увлекаюсь, что забываю!.
— Чтобы избежать подобных ошибок, новичкам в программировании обычно рекомендуется писать закрывающую фигурную скобку строго под открывающей.
Примеры:
Код с ошибками | Исправленный код |
---|---|
|
|
|
|
Забыли написать круглые скобки
— Чаще всего эту ошибку делают программисты, которые знают языки программирования, где в аналогичных ситуациях круглые скобки не обязательны.
Первый вариант — банально забыли поставить скобки в конце вызова метода:
Второй вариант — забыли обернуть в скобки условие оператора if-else
.
Примеры:
Код с ошибками | Исправленный код |
---|---|
|
|
|
|
Неправильно написан заголовок метода main
— Как только не пишут многострадальный заголовок метода main
! Наверное, ни над чем так не издеваются новички, как над этим бедным методом. И главное, потом всегда удивляются: а чего это наша программа не запускается? И, конечно, дело не в программисте, а в программе, компиляторе, валидаторе, Java-машине. Список виновных можно продолжать бесконечно.
Примеры:
Код с ошибками | Пояснение |
---|---|
|
Пропущен public |
|
Пропущен static |
|
Пропущен static и void |
|
Пропущены public и static |
|
Пропущены [] |
|
Пропущены String[] args |
|
Вместо void написано int |
Имя файла отличается от имени класса
— Согласно стандарту, все классы в Java должны храниться в файле, название которого совпадает с именем класса. И как уже раньше говорилось, регистр букв тут тоже имеет значение:
Имя файла | Имя класса | Примечание |
---|---|---|
Solution.java | Solution | Все отлично |
Solutions.java | Solution | Лишняя буква s в названии файла |
solution.java | Solution | Название файла с маленькой буквы |
Solution.txt | Solution | Расширение файла txt вместо Java |
Solution.java | solution | Название класса с маленькой буквы |
— Вообще-то в файле с расширением java может быть объявлено несколько классов, но только у одного из них перед именем может быть слово public
. Вот его-то имя и должно совпадать с именем файла.
— В файле с расширением java всегда должен быть класс, имя которого совпадает с именем файла, и у него есть модификатор public
. Пример:
Solution.java |
---|
|
— Также в языке Java разрешено писать классы в классах. Это тоже способ обойти озвученное выше ограничение. Если в файле объявлен публичный класс (с модификатором public
), имя которого совпадает с именем файла, внутри этого публичного класса можно объявлять сколько угодно классов. Хотя это уже будут не обычные, а внутренние или вложенные классы. Пример:
Solution.java |
---|
|
Забыли написать package
— Поскольку в программах обычно тысячи классов, всем из них сложно подобрать простые, понятные и уникальные имена. Поэтому в Java все классы принято группировать по пакетам — package
. Точно так же, как файлы группируются по папкам.
— Ага, поэтому в начале каждого класса нужно писать пакет, которому он принадлежит..
— Именно. Вот пример:
Код без пакета | Исправленный пример |
---|---|
|
|
Забыли добавить import
— Если мы хотим в нашей программе использовать какой-то чужой класс, у нас есть два варианта: мы должны везде в нашем коде писать перед именем этого класса еще и имя его пакета. Или же мы можем один раз написать полное имя класса со словом import
. Пример:
Без использования import | С использованием import |
---|---|
|
|
— Оба варианта рабочие, но вот если ты в своем коде будешь писать просто Scanner
, а import
не добавишь, компилятор не сможет понять, из какого пакета ему нужно брать класс Scanner
, и компилировать программу не будет.
— Спасибо, Диего. Эта лекция заставит меня быть внимательнее..
— На это и был расчёт. Удачи!
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ