10 Ошибок, которых следует избегать в Java

10 Ошибок, которых следует избегать в Java - манекены

Поймайте распространенные ошибки в Java-программировании, прежде чем создавать их. Вот краткий контрольный список из десяти вещей, которые нужно учитывать в вашем коде.

Ввод заглавных букв там, где они принадлежат

Java - это язык, чувствительный к регистру, поэтому вам действительно нужно иметь в виду ваши P s и Q s - вместе со всеми другими буквами алфавита. Вот некоторые детали, которые следует учитывать при создании Java-программ:

  • Все ключевые слова Java полностью строчные. Например, в выражении Java if слово , если не может быть If или IF.

  • Когда вы используете имена из Java API (Application Programming Interface), случай с именами должен соответствовать тому, что появляется в API.

  • Вам также необходимо убедиться, что имена, которые вы сами составляете, капитализируются одинаково на всей вашей программе. Если вы объявляете переменную myAccount, вы не можете ссылаться на нее как MyAccount, myaccount или Myaccount. Если вы заглаживаете имя переменной двумя разными способами, Java думает, что вы имеете в виду две совершенно разные переменные.

Выключение оператора switch

Если вы не выходите из оператора switch, вы получаете провал. Например, если значение стиха равно 3, следующий код печатает все три строки - Последний рефрен, Он боль, и не имеет мозгов.

 переключатель (стих) {case 3: out. print («Последний рефрен»); вне. println («последний рефрен»); случай 2: вне. печать («Он боль»); вне. println («он боль»); случай 1: выход. печать («Не имеет мозгов»); вне. println («не имеет мозгов»);} 

Сравнение значений с двойным знаком равенства

Когда вы сравниваете два значения друг с другом, вы используете знак двойного равенства. Строка

 if (inputNumber == randomNumber) 

верна, но строка

 if (inputNumber = randomNumber) 

неверна.

Добавление компонентов в GUI

Вот конструктор для фрейма Java:

 public SimpleFrame () {JButton button = new JButton ( «Спасибо ...»  ); setTitle ( "...  Конни Сантистебан  и Брайан Стены"  ); setLayout (новый FlowLayout ());  добавить (кнопка); Кнопка  . addActionListener (это); setSize (300, 100); setVisible (true);} 

Что бы вы ни делали, не забудьте вызвать метод добавления. Без этого вызова вы переходите ко всей работе по созданию кнопки, но кнопка не отображается на вашем фрейме.

Добавление слушателей для обработки событий

Посмотрите еще раз на код предыдущего раздела, чтобы построить SimpleFrame. Если вы забыли вызов addActionListener, ничего не происходит, когда вы нажимаете кнопку. Повторное нажатие кнопки во второй раз не помогает.

Определение необходимых конструкторов

Когда вы определяете конструктор с параметрами, как в

 public Temperature (двойной номер) 

, тогда компьютер больше не создает для вас конструктор без параметров без параметров. Другими словами, вы больше не можете звонить

 Температурная камераTemp = новая температура (); 

, если вы явно не определяете свой собственный конструктор температуры без параметров.

Фиксация нестатических ссылок

Если вы попытаетесь скомпилировать следующий код, вы получите сообщение об ошибке:

 class WillNotWork {String greeting = "Hello"; public static void main (String args []) {System. вне. println (приветствие);}} 

Появляется сообщение об ошибке, поскольку main является статическим, но приветствие не является статичным.

Пребывание в пределах массива

Когда вы объявляете массив с десятью компонентами, компоненты имеют индексы от 0 до 9. Другими словами, если вы объявляете

 int guests [] = новый int [10]; 

, то вы можете обратиться к компонентам массива гостей, написав гостям [0], гостям [1] и т. Д., Вплоть до гостей [9]. Вы не можете писать гостям [10], потому что в массиве гостей нет компонента с индексом 10.

Представление нулевых указателей

Примеры этой книги не склонны бросать исключение NullPointerException, но в реальном Java-программировании, вы видите это исключение все время. Исключение NullPointerException возникает, когда вы вызываете метод, который должен возвращать объект, но вместо этого метод ничего не возвращает. Вот дешевый пример:

 import static java. яз. Система. вне; импортировать java. Ио. Файл; class ListMyFiles {public static void main (String args []) {Файл myFile = новый файл ( " windows"  ); String dir [] = myFile. список(); for (String fileName: dir) {out. println (fileName);}}} 

Эта программа отображает список всех файлов в каталоге Windows.

Но что произойдет, если вы измените windows на что-то еще - что-то, что не представляет собой имя каталога?

 Файл myFile = новый файл ( "& *% $!!"  ); 

Затем новый вызов File возвращает null (специальное слово Java означает ничего ), поэтому переменная myFile в ней ничего не имеет. Позже в коде переменная dir ни к чему не обращается, и попытка петли через все значения dir с трудом исчезает. Вы получаете большое исключение NullPointerException, и программа рушится вокруг вас.

Чтобы избежать такого рода бедствия, проверьте документацию API Java. Если вы вызываете метод, который может возвращать null, добавьте код обработки исключений в вашу программу.

Помочь Java найти свои файлы

Вы компилируете Java-код, учитывая свой бизнес, когда компьютер дает вам NoClassDefFoundError. Всевозможные вещи могут идти не так, но есть вероятность, что компьютер не может найти конкретный файл Java. Чтобы исправить это, вы должны правильно выровнять все планеты:

  • Каталог проектов должен содержать все файлы Java, имена которых используются в вашем коде.

  • Если вы используете именованные пакеты, ваш каталог проектов должен иметь соответственно названные подкаталоги.

  • Ваш CLASSPATH должен быть установлен правильно.