Инициализация и очистка − начальное и завершающее действия, обеспечивающие правильную работу с объектами. Для инициализации объекта в каждый класс можно добавить метод, например initial(). При этом необходимо помнить об этом методе. В Java, как и в C++, функция инициализации объекта возложена на специальный метод класса − конструктор, вызываемый автоматически при создании объекта. Наряду с ним в Java добавлен сборщик мусора, автоматически освобождающий более не используемые ресурсы памяти. Остановимся на этом более подробно.
Имя конструктора класса всегда совпадает с именем класса. При этом в классе может содержаться более одного конструктора.
class Demo_constr {
int n;
Demo_constr () { // конструктор без параметров
n=0; // инициализация поля n
System.out.println("konstructor Demo_constr 1");
}
Demo_constr (int N) { // конструктор с параметрами
n=N; // инициализация поля n
System.out.println("konstructor Demo_constr 2");
}
}
public class Demo {
public static void main(String[] args) {
Demo_constr obj1=new Demo_constr (); // вызов конструктора без
// параметров
Demo_constr obj2=new Demo_constr (5); // вызов конструктора с одним
// параметром
}
} ///:~
Конструктор с параметрами обеспечивает способ передачи данных для инициализации объекта. Конструктор без параметров так же часто называют конструктором по умолчанию. При создании класса, не имеющего конструкторов, компилятор автоматически создаст конструктор по умолчанию. Однако при наличии в классе любого конструктора (с аргументами или без них) компилятор автоматически генерировать конструктор без параметров не будет.
Еще одно отличие конструктора от обычного метода класса состоит в том, что конструктор не имеет возвращаемого значения.