JavaRush /Java блог /Random /Шокуючі факти про ініціалізацію полів у Java: все, що ви ...
Автор
Pavlo Plynko
Java-разработчик в CodeGym

Шокуючі факти про ініціалізацію полів у Java: все, що ви не знали

Стаття з групи Random
Ініціалізація полів в Java — це процес встановлення початкових значень для змінних класу або об'єкту. При ініціалізації поля можна встановити значення за замовчуванням або вказати конкретне значення. Шокуючі факти про ініціалізацію полів у Java: все, що ви не знали - 1Існує кілька способів ініціалізації полів у Java:
  1. Ініціалізація за замовчуванням: якщо не встановити жодного значення для поля, Java автоматично встановлює значення за замовчуванням. Це може бути 0 для числових типів даних, false для типу boolean, null для об'єктів тощо.

    
    int num; // num буде ініціалізовано значенням 0
    boolean flag; // flag буде ініціалізовано значенням false
    String str; // str буде ініціалізовано значенням null
    

  2. Ініціалізація в конструкторі: конструктор може приймати параметри для встановлення значення полів об'єкта. В конструкторі можна встановити значення за замовчуванням або передати конкретні значення.

    
    public class Person {
        private String name;
        private int age;
    
        public Person() {
            this.name = "Олекса Довбуш";
            this.age = 18;
        }
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    }
    

  3. Ініціалізація за допомогою блоку ініціалізації: блок ініціалізації виконується перед конструктором і може встановлювати значення полів об'єкта.

    
    public class Person {
        private String name;
        private int age;
    
        {
            this.name = "Олекса Довбуш";
            this.age = 18;
        }
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    }
    

  4. Ініціалізація за допомогою статичного блоку ініціалізації: статичний блок ініціалізації виконується при завантаженні класу і може встановлювати значення статичних полів класу.

    
    public class Person {
        private static int counter;
        private String name;
        private int age;
    
        static {
            counter = 0;
        }
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
            counter++;
        }
    }
    

  5. Ініціалізація за допомогою оператора присвоєння: поле можна ініціалізувати при оголошенні змінної або в будь-якому іншому місці за допомогою оператора присвоєння.

    
    public class Person {
        private String name = "Олекса Довбуш";
        private int age;
    
        public void setAge(int age) {
            this.age = age;
        }
    }
    

Це лише деякі способи ініціалізації полів у Java. Важливо пам'ятати, що значення полів можуть бути змінені в будь-який момент під час виконання програми, тому важливо обирати правильний спосіб ініціалізації в залежності від конкретних потреб вашої програми. Ось декілька прикладів коду, які демонструють різні способи ініціалізації полів у Java:

public class Car {
    private String make; // ініціалізація за замовчуванням
    private String model = "Unknown"; // ініціалізація за допомогою оператора присвоєння
    private int year;

    public Car(String make, String model, int year) { // ініціалізація в конструкторі
        this.make = make;
        this.model = model;
        this.year = year;
    }

    {
        make = "Ford"; // ініціалізація за допомогою блоку ініціалізації
        year = 2022;
    }

    static {
        System.out.println("Static block initialization"); // статичний блок ініціалізації
    }
}

public class Circle {
    private static final double PI = 3.14159; // статичне поле зі значенням за замовчуванням
    private double radius;

    public Circle(double radius) {
        this.radius = radius;
    }

    public double getArea() {
        return PI * radius * radius; // використання статичного поля
    }
}

public class Person {
    private String name;
    private int age;

    public Person(String name) {
        this.name = name;
    }

    public void setAge(int age) { // ініціалізація за допомогою setter-метода
        this.age = age;
    }
}

public class Rectangle {
    private int width;
    private int height;

    public Rectangle(int width, int height) { // ініціалізація в конструкторі
        this.width = width;
        this.height = height;
    }

    public void scale(double factor) { // зміна значення поля методом
        width *= factor;
        height *= factor;
    }
}
Запрошую вас коментувати цю лекцію і ділитися своїми спостереженнями та запитаннями щодо ініціалізації полів у Java. Якщо у вас є якісь ідеї щодо тем для наступних лекцій, будь ласка, поділіться ними. Ця лекція лише охоплює основні принципи ініціалізації полів у Java, тому якщо у вас є якісь конкретні запитання або потреби, що не були включені у цю лекцію, не соромтеся запитати.
Коментарі (3)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
les_yeux_blancs Рівень 50
3 травня 2023
Привіт, лекція гуд, було б круто додати більше прикладів з виводом послідовності у консоль) І, можливо, згадати, коли ініціалізуються методи, бо про це зазвичай забувають