При описании конструктора следует соблюдать определенные правила. Имя конструктора должно совпадать с именем класса. Конструктор никогда не возвращает результат, но ключевое слово void не используется.
В листинге 6.5 приведен пример программы, в которой используются конструкторы объектов с перегрузкой.
Листинг 6.5 Пример использования конструкторов
class MyClass {
// Объявляем поля класса
int digit;
char letter;
// Конструктор класса без аргументов
MyClass () {
digit=9;
letter=«Z»;
System.out.println («Вызван конструктор объекта без аргументов.»);
System.out.println («Полям присвоены значения "+digit+" и "+letter);
}
// Конструктор класса с двумя аргументами
MyClass (int a, char b) {
digit=a;
letter=b;
System.out.println («Вызван конструктор объекта с двумя аргументами.»);
System.out.println («Полям присвоены значения "+digit+" и "+letter);
}
}
public class Listing6_5 {
public static void main (String [] args) {
// Создаем первый объект класса MyClass
// Вызывается конструктор без аргументов
MyClass objFirst=new MyClass ();
// Создаем второй объект класса MyClass
// Вызывается конструктор с двумя аргументами
MyClass objSecond=new MyClass (8, «B»);
}
}
В данном примере описаны два конструктора класса, которые при создании объекта присваивают начальные значения его полям. В набор команд конструктора добавлен вывод отладочных сообщений, чтобы вы могли наблюдать, что происходит при вызове конструктора класса.
6.2.4 Статические поля и методы
Когда мы создаем объект класса, то поля, описанные в классе, фактически превращаются в переменные объекта. Методы, описанные в классе, становятся методами объекта и имеют доступ к полям только «своего» объекта. Такие члены класса называют нестатическими.
Но могут существовать и статические члены класса. Они являются «общими» для всех объектов класса и существуют, даже если не создан ни один объект. К статическому члену класса можно обращаться через объект, указав через точку после имени объекта имя статического члена. Но предпочтительным является прямое обращение через имя класса. При этом после имени класса через точку указывают имя вызываемого статического члена класса.
При описании статического члена используется ключевое слово static. Статическое поле при необходимости можно инициализировать присвоением значения непосредственно в теле класса.