Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП зачет.docx
Скачиваний:
89
Добавлен:
01.04.2022
Размер:
3.08 Mб
Скачать

Область видимости и время жизни переменных.

Под «видимостью переменных» подразумевают места в коде, где к этой переменной можно обратиться. К некоторым переменным можно обращаться отовсюду в программе, к другим только в пределах их класса, к третьим же только внутри одного метода.

В Java существует три вида переменных, основанных на области действия и времени жизни.

Локальная переменная: Локальные переменные объявляются в методах, конструкторах или блоках.

Глобальная переменная / переменная экземпляра: переменные экземпляра объявляются в классе, но вне метода, конструктора или любого блока.

Переменная экземпляра также является переменной объекта, обычно называемой полем или свойством. Они называются объектной переменной. Каждый объект имеет свою собственную копию каждой переменной, и, следовательно, он не влияет на переменную экземпляра, если один объект изменяет значение переменной.

Класс / Статические переменные: переменные класса, также известные как статические переменные, объявляются с ключевым словом static в классе. Статические переменные также используются при объявлении константы вместе с последним ключевым словом.

  • Переменные создаются при вводе их области действия и уничтожаются при оставлении их области действия.

  • Переменная не будет сохранять свое значение после выхода из области видимости.

  • Переменные, объявленные в методе, не будут хранить свои значения между вызовами этого метода. Кроме того, переменная, объявленная в блоке, потеряет свое значение при выходе из блока. Таким образом, время жизни переменной ограничено ее областью действия.

  • Если объявление переменной включает инициализатор, то эта переменная будет повторно инициализироваться каждый

  • время вводится блок, в котором он объявлен.

Область видимости и время жизни объектов

Объекты доступны в программе только через ссылки на них. Поэтому область видимости объекта определяется областью видимости ссылок на этот объект (на один объект может быть сколько угодно ссылок).

Время жизни объекта определяется следующим правилом.

  • Объект существует, пока существует хотя бы одна ссылка на этот объект.

Это правило, однако, не утверждает, что объект будет уничтожен, как только пропадет последняя ссылка на него. Просто такой объект становится недоступным и может быть уничтожен.

  • В Java нет явного уничтожения объектов. Объекты уничтожаются (говорят — утилизируются) сборщиком мусора (garbage collector), который работает в фоновом режиме параллельно с самой программой на Java.

Вопрос 3. Классы и объекты. Структура класса. Конструкторы класса

Объект в программе — это абстракция реального объекта. Объект обладает атрибутами, поведением и индивидуальностью. Атрибуты определяют основные черты объекта, поведение — действия над объектом, индивидуальность — отличие одного объекта от другого с такими же атрибутами по их конкретным значениям. Например: два кота, у обоих есть шерсть, но у одного шерсть черного цвета, у другого — рыжая.

Класс – это множество объектов с одинаковыми атрибутами и поведением, представляемое в языке программирования в виде абстрактного типа данных, который включает в себя члены класса.

Шаблоном или описанием объекта является класс, а объект представляет экземпляр этого класса. Можно еще провести следующую аналогию. У нас у всех есть некоторое представление о человеке - наличие двух рук, двух ног, головы, туловища и т.д. Есть некоторый шаблон - этот шаблон можно назвать классом. Реально же существующий человек (фактически экземпляр данного класса) является объектом этого класса. Для хранения состояния объекта в классе применяются поля или переменные класса. Для определения поведения объекта в классе применяются методы.

Класс — это компонент языка Java, из которого создаются отдельные объекты.

Класс может содержать в себе типы переменных:

  • Локальные — переменные, определенные внутри методов, конструкторов или блоков, называются локальными переменными. Переменная будет объявлена ​​и инициализирована в методе, а переменная будет уничтожена после завершения метода.

  • Переменные экземпляра — это переменные внутри класса, но вне какого-либо метода. Эти переменные инициализируются, когда создается экземпляр класса. К переменным экземпляра можно получить доступ из любого метода, конструктора или блоков этого конкретного класса.

  • Переменные класса — это переменные, объявленные внутри класса, вне любого метода, с ключевым словом static.