Top.Mail.Ru
Ответы
Аватар пользователя
7лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Java -время жизни переменных и объектов

Помогите окончательно разобраться - КОГДА создается локальная переменная? Есть ли разница, ГДЕ она создается в теле класса или в теле метода класса? и зачем вообще нужен модификатор static?

По дате
По рейтингу
Аватар пользователя
Новичок
7лет

Знаю для си++, для джава наверное также.
1. Разница есть. В теле класса она доступна для всех методов класса. В методе класса она доступна только для этого метода.
2 Модификатор static для класса создает одну переменную для всех объектов этого класса. Например
class foo{
static int count
}

foo bar1, bar2;

bar1.count = 3;

cout << bar2.count; // Выведит число 3 на экран так как оно было задано в bar1

Тут опущен тот момент что переменную static нужно создать в другом месте а класс будет ее использовать.

Аватар пользователя
Знаток
7лет

разница есть. Модификатор static в разном контексте может означать разное (хотя глубинный смысл один). Чтобы не дёргать знаний по кусочкам, иногда не очень структурированным, я советую купить (скачать) книгу Б. Эккель - Философия Java. Сейчас есть полное издание, но можно брать и сокращенное.
Очень легко читается буквально за несколько дней, и расставляет все точки над j.