Spec-Zone .ru
спецификации, руководства, описания, API
След: Изучение Языка Java
Урок: Классы и Объекты
Раздел: Классы
Обеспечение Конструкторов для Ваших Классов
Домашняя страница > Изучение Языка Java > Классы и Объекты

Обеспечение Конструкторов для Ваших Классов

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

public Bicycle(int startCadence, int startSpeed, int startGear) {
    gear = startGear;
    cadence = startCadence;
    speed = startSpeed;
}

Создать новое Bicycle объект вызывают myBike, конструктора вызывают new оператор:

Bicycle myBike = new Bicycle(30, 0, 8);

new Bicycle(30, 0, 8) создает пространство в памяти для объекта и инициализирует его поля.

Хотя Bicycle только имеет одного конструктора, у этого могли быть другие, включая конструктора без параметров:

public Bicycle() {
    gear = 1;
    cadence = 10;
    speed = 0;
}

Bicycle yourBike = new Bicycle(); вызывает конструктора без параметров, чтобы создать новое Bicycle объект вызывают yourBike.

Оба конструктора, возможно, были объявлены в Bicycle потому что у них есть различные списки параметров. Как с методами, платформа Java дифференцирует конструкторов на основе числа параметров в списке и их типах. Невозможно записать двум конструкторам, у которых есть то же самое число и тип параметров за тот же самый class, потому что платформа не была бы в состоянии сказать им обособленно. Выполнение так причины ошибка времени компиляции.

Вы не должны предоставить конструкторам для своего class, но следует быть осторожными, делая это. Компилятор автоматически обеспечивает конструктора по умолчанию без параметров для любого class без конструкторов. Этот конструктор по умолчанию вызовет конструктора без параметров суперкласса. В этой ситуации будет жаловаться компилятор, нет ли у суперкласса конструктора без параметров, таким образом, следует проверить, что это делает. Если у Вашего class нет никакого явного суперкласса, то у него есть неявный суперкласс Object, у которого действительно есть конструктор без параметров.

Можно использовать конструктора суперкласса самостоятельно. MountainBike class в начале этого урока сделал только это. Это будет обсуждено позже в уроке в интерфейсах и наследовании.

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


Отметьте: Если другой class не может вызвать a MyClass конструктор, это не может непосредственно создать MyClass объекты.

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Определение Методов
Следующая страница: Передача информации к Методу или Конструктору