Спеціальні методи: конструктори

У Java для створення екземплярів класів і виділення під них памятііспользуется оператор new, наприклад:

Fish myFish = new Fish()

Круглі дужки після слова Fish говорять про те, що у цього класу визначено метод Fish () Так і є, існують спеціальні методи, які називаються конструкторами (constructors) , І у цих методів є такі особливості: ü  Конструктори викликаються тільки один раз при созданііобекта в памяті

ü  Вони повинні називатися так само, як називається классü  Вони нічого не повертають, не потрібно навіть писати словоvoid в сигнатурі цього методу У класу може бути кілька конструкторів Якщо ви не написали жодного конструктора, під час компіляції Java автоматично створить за вас так званий порожній конструктор за умовчанням (default no – argument constructor) Ось чому компілятор ніколи не буде лаятися на вираз new Fish (), навіть якщо в класі Fish ви не оголосили жодного конструктора

В основному, конструктори використовуються для присвоювання початкових значень атрибутам класу, наприклад, наступна версія класу Fish включає конструктор з одним аргументом, який задає початкове значення атрибута currentDepth рівним значенню аргументу конструктора

public class Fish extends Pet {

int currentDepth

Fish(int startingPosition){

currentDepth=startingPosition

}

}

Тепер клас FishMaster може створити екземпляр класу Fish і задати початкове положення рибки Нижче створюється екземпляр класу Fish, який спочатку занурює рибку в море на глибину 20 метрів:

Fish myFish = new Fish(20)

Для класу, в якому було визначено конструктор з аргументами, конструктор за замовчуванням створюватися автоматично не буде Якщо вам необхідний конструктор без аргументів – напишіть його

Ключове слово this

Ключове слово this корисно, коли потрібно послатися на екземпляр класу всередині обєкта цього класу Розглянемо наступний приклад:

class Fish {

int currentDepth

Fish(int currentDepth){

thiscurrentDepth = currentDepth

}

}

Тут ідентифікатор this допомагає уникнути конфлікту імен, наприклад thiscurrentDepth посилається на атрибут класу currentDepthв той час як currentDepth посилається на значення аргументу конструктораДругімі словами, екземпляр класу Fish вказує на самого себе за допомогою слова this

Інший важливий приклад використання ключового слова this, вивстретіте в главі 6 в секції Як передавати дані між класами

Джерело: Java Programming for Kids, Parents and Grandparents by Yakov Fain

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*