| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > инициализация свойств класса null'ем |
| Автор: priam220 21.6.2010, 22:41 | ||
| в коде встречаются два способа объявления ссылок на свойства класса: с инициализацией: StringBuffer st = null; без инициализации: StringBuffer st; Всегда пользовался первым способом, но выяснилось, что java сама инициализирует указатели null'em:
вывод: null как правильно и почему? |
| Автор: aleksandy 22.6.2010, 05:51 | ||
http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.12.5
|
| Автор: batigoal 22.6.2010, 10:48 | ||||
| И тем не менее, иногда нужно явно объявлять "= null". Например, вот такой код приведет к ошибке компиляции:
|
| Автор: priam220 22.6.2010, 11:07 |
| batigoal, вот твой пример: public class Exmpl { String sb; public void run() { try { sb = "abc"; } catch( Exception ex ) { ex.printStackTrace(); } System.out.println( sb == null ); } } Вывод: false Речь идет о свойствах класса, а не о локальных переменных, на не определенность которых ругается сам компилятор. |
| Автор: priam220 22.6.2010, 11:50 |
| Похоже, свойства класса в java инициализировать null'em не надо. Во всяком случае я не нашел ни одного случая, где бы это было необходимо. |
| Автор: EnJ 22.6.2010, 12:51 |
| При создании экземпляра класса вызывается конструктор по умолчанию(если даже явно не определить ни одного), который инициализирует переменные опять же по умолчанию Ты прав, что не надо их инициализировать, жаба за тебя это сделает, но не стоит так сильно полагаться на машину, ведь всякое бывает. По моему мнению, надо обязательно объявлять переменные, а не надеяться, что это за тебя кто-то другой сделает. |
| Автор: batigoal 22.6.2010, 15:53 |
Да, это я упустил из виду. |
| Автор: priam220 22.6.2010, 22:12 |
| Dummy, полностью согласен с тобой. Всем большое спасибо! |