Ініціалізація за замовчуванням: якщо не встановити жодного значення для поля, Java автоматично встановлює значення за замовчуванням. Це може бути 0 для числових типів даних, false для типу boolean, null для об'єктів тощо.
int num; // num буде ініціалізовано значенням 0 boolean flag; // flag буде ініціалізовано значенням false String str; // str буде ініціалізовано значенням null
Ініціалізація в конструкторі: конструктор може приймати параметри для встановлення значення полів об'єкта. В конструкторі можна встановити значення за замовчуванням або передати конкретні значення.
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; } }
Ініціалізація за допомогою блоку ініціалізації: блок ініціалізації виконується перед конструктором і може встановлювати значення полів об'єкта.
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; } }
Ініціалізація за допомогою статичного блоку ініціалізації: статичний блок ініціалізації виконується при завантаженні класу і може встановлювати значення статичних полів класу.
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++; } }
Ініціалізація за допомогою оператора присвоєння: поле можна ініціалізувати при оголошенні змінної або в будь-якому іншому місці за допомогою оператора присвоєння.
public class Person { private String name = "Олекса Довбуш"; private int age; public void setAge(int age) { this.age = age; } }
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, тому якщо у вас є якісь конкретні запитання або потреби, що не були включені у цю лекцію, не соромтеся запитати.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ