JavaRush /Java блог /Random UA /Ініціалізація полів

Ініціалізація полів

Стаття з групи Random UA
Вітаю, колеги. Вирішив показати кілька способів ініціалізації полів Java. Стаття може бути корисною тим, хто тільки почав вивчати програмування. Ініціалізація полів - 1Для запуску демонстраційних прикладів створимо Java клас Demo методом main() . У методі main() виведемо щось на екран, щоб переконатися, що програма запускається:
public class Demo {
    public static void main(String[] args) {
        System.out.println("Hello JavaRush.");
    }
}
Далі створимо Java клас кота, додамо до нього кілька полів: ім'я, вік.
class Cat {
    String name;
    int age;
}
У методі main()створимо двох котів. Спробуємо вивести на екран їх ім'я та вік:
public class Demo {
    public static void main(String[] args) {
        Cat cat1 = new Cat();
        Cat cat2 = new Cat();

        System.out.println("Ім'я первого кота: " + cat1.name);
        System.out.println("Возраст первого кота: " + cat1.age);
        System.out.println();
        System.out.println("Ім'я второго кота: " + cat2.name);
        System.out.println("Возраст второго кота: " + cat2.age);
    }
}

class Cat {
    String name;
    int age;
}
Запустивши програму, отримаємо висновок:
Ім'я первого кота: null
Возраст первого кота: 0

Ім'я второго кота: null
Возраст второго кота: 0
Оскільки ми не ініціалізували ці поля, вони набули значень за умовчанням. Stringвідноситься до типів посилань, а для всіх типів посилань значення за умовчанням це null. intвідноситься до примітивних типів. У кожного примітивного типу є значення за замовчуванням:
Ініціалізація полів - 2
Як можна передати в наші поля реальні значення (наприклад, ім'я "Том" та вік "два роки")? Перший спосіб - ініціалізувати поля відразу під час оголошення:
public class Demo {
    public static void main(String[] args) {
        Cat cat1 = new Cat();
        Cat cat2 = new Cat();

        System.out.println("Ім'я первого кота: " + cat1.name);
        System.out.println("Возраст первого кота: " + cat1.age);
        System.out.println();
        System.out.println("Ім'я второго кота: " + cat2.name);
        System.out.println("Возраст второго кота: " + cat2.age);
    }
}

class Cat {
    String name = "Том";
    int age = 2;
}
Запускаємо програму та бачимо, що поля ініціалізовані нашими значеннями:
Ім'я первого кота: Том
Возраст первого кота: 2

Ім'я второго кота: Том
Возраст второго кота: 2
При цьому скільки б котів ми не створювали, вони всі матимуть однакові ім'я та вік. Тобто ми просто змінабо значення null та 0 на “Том” та 2. Наступний спосіб ініціалізації – через конструктор. Створимо коту конструктор із двома параметрами. Зазвичай імена параметрів роблять такими самими, як і імена полів. У такому разі для звернення до полів потрібно використовувати слово this, а параметри конструктора можна звертатися звичайним способом:
public Cat(String name, int age) {
    this.name = name;
    this.age = age;
}
Ще раз:
Ініціалізація полів – 3
Додамо також порожній конструктор без параметрів, щоби наш попередній приклад був працездатним. У методі main()додамо ще двох котів за допомогою конструктора з параметрами.
public class Demo {
    public static void main(String[] args) {
        Cat cat1 = new Cat();
        Cat cat2 = new Cat();

        System.out.println("Ім'я первого кота: " + cat1.name);
        System.out.println("Возраст первого кота: " + cat1.age);
        System.out.println();
        System.out.println("Ім'я второго кота: " + cat2.name);
        System.out.println("Возраст второго кота: " + cat2.age);

        Cat cat3 = new Cat("Рыжик", 5);
        Cat cat4 = new Cat("Барсик", 9);

        System.out.println();
        System.out.println("Ім'я третьего кота: " + cat3.name);
        System.out.println("Возраст третьего кота: " + cat3.age);
        System.out.println();
        System.out.println("Ім'я четвертого кота: " + cat4.name);
        System.out.println("Возраст четвертого кота: " + cat4.age);
    }
}

class Cat {
    String name;
    int age;

    public Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Cat() {
    }
}
Запустимо програму:
Ім'я первого кота: null
Возраст первого кота: 0

Ім'я второго кота: null
Возраст второго кота: 0

Ім'я третьего кота: Рыжик
Возраст третьего кота: 5

Ім'я четвертого кота: Барсик
Возраст четвертого кота: 9
Як бачимо, створені таким способом коти мають більшу індивідуальність. Існують і інші способи ініціалізації полів у Java, але, для початку достатньо і цих.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ