Статичні члени та модифікатор static/Об’єкти як параметри методів

Прокрутити вниз


Курс Java Статичні члени та модифікатор static. У Java модифікатор static відіграє важливу роль у контексті класів, полів і методів, дозволяючи працювати з елементами класу без необхідності створення об’єктів. Також важливо розуміти, як використовувати об’єкти як параметри методів, що дозволяє передавати екземпляри класів між різними частинами коду.

1. Статичні члени та модифікатор static

Модифікатор `static` дозволяє оголошувати поля та методи, які належать класу, а не конкретному об’єкту. Це означає, що до статичних членів можна звертатися без створення екземпляра класу.

Статичні поля:

  • Поля з модифікатором `static` є загальними для всіх об’єктів класу. Тобто всі екземпляри класу поділяють одне і те ж статичне поле.
  • Зміни значення статичного поля впливають на всі екземпляри класу.

Приклад статичного поля:

public class Car {
static int numberOfCars = 0; // Статичне поле

public Car() {
numberOfCars++;
}
}

public class Main {
public static void main(String[] args) {
Car car1 = new Car();
Автомобіль car2 = new Car();
System.out.println(Car.numberOfCars); // Виведе 2
}
}

Статичні методи:

  • Статичні методи належать класу і можуть бути викликані без створення об’єкта класу. Вони не мають доступу до нестатичних полів і методів, тому що останні прив’язані до конкретних екземплярів класу.

Приклад статичного методу:

public class MathUtils {
public static int add(int a, int b) {
return a + b;
}
}

public class Main {
public static void main(String[] args) {
int sum = MathUtils.add(5, 10); // Виклик статичного методу без створення об’єкта
System.out.println(sum); // Виведе 15
}
}

Статичні блоки:

  • Статичні блоки ініціалізації використовуються для виконання коду під час завантаження класу, до створення будь-яких об’єктів або звернень до статичних методів.

Приклад статичного блоку:

public class Example {
static {
System.out.println(“Статичний блок виконується під час завантаження класу”);
}

public static void main(String[] args) {
System.out.println(“Основний метод”);
}
}

2. Об’єкти як параметри методів

В Java можна передавати об’єкти як параметри методів. Це дозволяє методам працювати з екземплярами класів та модифікувати їх стан.

Передача об’єктів у методи:

При передачі об’єкта в метод передається посилання на цей об’єкт, а не його копія. Це означає, що зміни, зроблені в методі з об’єктом, будуть відображені поза межами цього методу, оскільки посилання на об’єкт залишається тим самим.

Приклад передачі об’єкта в метод:

public class Person {
String name;

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

public class Main {
public static void updateName(Person person) {
person.name = “Updated Name”; // Змінюємо поле об’єкта
}

public static void main(String[] args) {
Person p = new Person(“John”);
System.out.println(p.name); // Виведете “Джон”

updateName(p); // Передаємо об’єкт у метод
System.out.println(p.name); // Виведе “Updated Name”
}
}

Передача об’єктів через значення:

Важливо розуміти, що в Java всі параметри передаються за значенням. Це стосується також об’єктів: у метод передається копія посилання на об’єкт. Але оскільки посилання все ще вказує на той самий об’єкт, зміни в об’єкті будуть видимі поза межами методу.

Однак, якщо ви зміните саму змінну, що містить посилання (наприклад, привласните їй нове посилання), це не вплине на оригінальний об’єкт:

public class Main {
public static void changeReference(Person person) {
person = new Person(“Нова особа”);
}

public static void main(String[] args) {
Person p = new Person(“John”);
changeReference(p);
System.out.println(p.name); // Все ще “John”, оскільки зміна посилання не впливає на оригінальний об’єкт
}
}

Висновок: Курс Java Статичні члени та модифікатор static

Модифікатор static дозволяє створювати поля та методи, які належать самому класу, а не його екземплярам, що зручно для спільних даних або утилітарних функцій. Передача об’єктів у методи дає можливість маніпулювати їх станом, оскільки передається посилання на об’єкт, що дозволяє ефективно працювати з ними в Java.

Статичні члени та модифікатор staticОб’єкти як параметри методів