Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Инициализация членов класса






 

Локальные переменные не инициализируются по умолчанию.

 

Примитивные типы –инициализируются нулями. Ссылочные значения поля класса инициализируются – null. Инициализировать поля можно:

1) явно

 

public class Init {

byte b = 47;

char ch = ‘x’;

Depth d = new Depth ();

}

 

2) инициализация конструктором

 

public class Counter {

int i;

Counter () {i=7; }

}

new Counter (); // в этот момент i получит 7, но перед этим i=0.

 

Порядок инициализации

 

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



Статические данные инициализируются при необходимости:

1) при создании первого объекта;

2) при первом обращении к статическим данным класса

 

 

Процесс создания объекта(класс Dog)

 

1) Конструктор является статическим методом.

При создании первого объекта типа Dog или при первом вызове статического метода или обращения к статическому полю класса Dog интерпретатор Java находит класс Dog.class. Поиск в каталогах CLASSPATH.

2) Загружается Dog.class (с созданием объекта Class) и производится инициализация статических элементов (только один раз, при первой загрузке).

3) Создается новый объект new Dog () - выделяется область памяти для объекта Dog в Heap.

4) Выделенная область памяти заполняется нулями.

5) Инициализируются поля.

6) Выполняются конструкторы.

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.