Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Використання Складних Класів | Класи: Розширений Рівень
Java Extended
course content

Зміст курсу

Java Extended

Java Extended

1. Глибока Структура Java
2. Методи
3. Рядки: Розширений Рівень
4. Класи
5. Класи: Розширений Рівень

book
Використання Складних Класів

Використання об'єктів класу в іншому класі

Тепер розглянемо більш складне використання класів, а саме використання об'єктів класу всередині іншого класу.

Команда та гравці

Уявімо ситуацію, коли у нас є клас Team. Кожна команда повинна мати гравців. Ми могли б заповнити поле players простими значеннями типу String, які представляють їхні імена, але це не було б найкращою практикою. Набагато краще створити клас Player з власними полями та методами, а потім створити масив об'єктів Player у класі Team. Розглянемо приклад:

Team.java

Team.java

copy
1234567891011121314151617181920212223242526
class Team { String title; String country; Player[] players; void play() { System.out.println("Team " + title + "is playing!"); } } class Player { String name; int age; int yearsOfExperience; public Player(String name, int age, int yearsOfExperience) { this.name = name; this.age = age; this.yearsOfExperience = yearsOfExperience; } void introduce() { System.out.println("Hi, my name is " + name + ", I am " + age + " years old and have " + yearsOfExperience + " years of experience"); } }

Як ви бачите, ми використовуємо масив об'єктів Player у полі players класу Team. З цього можна зробити кілька висновків:

  1. Можна створювати масиви об'єктів із власного створеного класу;
  2. Можна використовувати об'єкти одного класу всередині іншого класу для покращення загальної логіки.

Але виникає питання: Як заповнити цей масив?

Відповідь: Для цього потрібно створити кілька об'єктів Player і додати їх до масиву гравців. Створимо Dream Team у головному методі та розглянемо приклад:

Main.java

Main.java

copy
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
package com.example; import java.util.Arrays; public class Main { public static void main(String[] args) { Player bob = new Player("Bob", 32, 5); Player alice = new Player("Alice", 28, 8); Player john = new Player("John", 41, 20); Player[] players = {bob, alice, john}; Team dreamTeam = new Team("Dream Team", "USA", players); System.out.println(dreamTeam); } } class Team { String title; String country; Player[] players; public Team(String title, String country, Player[] players) { this.title = title; this.country = country; this.players = players; } void play() { System.out.println("Team " + title + "is playing!"); } @Override public String toString() { return "Team{" + "title='" + title + '\'' + ", country='" + country + '\'' + ", players=" + Arrays.toString(players) + '}'; } } class Player { String name; int age; int yearsOfExperience; public Player(String name, int age, int yearsOfExperience) { this.name = name; this.age = age; this.yearsOfExperience = yearsOfExperience; } void introduce() { System.out.println("Hi, my name is " + name + ", I am " + age + " years old and have " + yearsOfExperience + " years of experience"); } @Override public String toString() { return "Player{" + "name='" + name + '\'' + ", age=" + age + ", yearsOfExperience=" + yearsOfExperience + '}'; } }

Ми створили 3 об'єкти класу Player та ініціалізували їх поля через конструктор. Далі створюємо масив типу Player і додаємо до нього Bob, Alice та John. Потім створюємо об'єкт Team і ініціалізуємо його поля через конструктор. Поле players[] ініціалізуємо раніше створеним масивом. Виводимо об'єкт у консоль і бачимо, що об'єкт Team містить об'єкти Player у результаті виводу.

Власник і улюбленець

Розглянемо ще один простіший приклад. Припустимо, у нас є Owner і Pet. Для кожного створимо окремий клас. Клас Pet матиме лише одне поле — String name. Клас Owner матиме два поля — String name та Pet pet.

Pet.java

Pet.java

copy
123456789101112131415161718
class Pet { String name; public Pet(String name) { this.name = name; } } class Owner { String name; Pet pet; public Owner(String name, Pet pet) { this.name = name; this.pet = pet; } }

Як ви можете бачити, ці два класи також пов'язані між собою, оскільки клас Owner має поле типу Pet (це клас, який ми створили самостійно!).

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 1

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

course content

Зміст курсу

Java Extended

Java Extended

1. Глибока Структура Java
2. Методи
3. Рядки: Розширений Рівень
4. Класи
5. Класи: Розширений Рівень

book
Використання Складних Класів

Використання об'єктів класу в іншому класі

Тепер розглянемо більш складне використання класів, а саме використання об'єктів класу всередині іншого класу.

Команда та гравці

Уявімо ситуацію, коли у нас є клас Team. Кожна команда повинна мати гравців. Ми могли б заповнити поле players простими значеннями типу String, які представляють їхні імена, але це не було б найкращою практикою. Набагато краще створити клас Player з власними полями та методами, а потім створити масив об'єктів Player у класі Team. Розглянемо приклад:

Team.java

Team.java

copy
1234567891011121314151617181920212223242526
class Team { String title; String country; Player[] players; void play() { System.out.println("Team " + title + "is playing!"); } } class Player { String name; int age; int yearsOfExperience; public Player(String name, int age, int yearsOfExperience) { this.name = name; this.age = age; this.yearsOfExperience = yearsOfExperience; } void introduce() { System.out.println("Hi, my name is " + name + ", I am " + age + " years old and have " + yearsOfExperience + " years of experience"); } }

Як ви бачите, ми використовуємо масив об'єктів Player у полі players класу Team. З цього можна зробити кілька висновків:

  1. Можна створювати масиви об'єктів із власного створеного класу;
  2. Можна використовувати об'єкти одного класу всередині іншого класу для покращення загальної логіки.

Але виникає питання: Як заповнити цей масив?

Відповідь: Для цього потрібно створити кілька об'єктів Player і додати їх до масиву гравців. Створимо Dream Team у головному методі та розглянемо приклад:

Main.java

Main.java

copy
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
package com.example; import java.util.Arrays; public class Main { public static void main(String[] args) { Player bob = new Player("Bob", 32, 5); Player alice = new Player("Alice", 28, 8); Player john = new Player("John", 41, 20); Player[] players = {bob, alice, john}; Team dreamTeam = new Team("Dream Team", "USA", players); System.out.println(dreamTeam); } } class Team { String title; String country; Player[] players; public Team(String title, String country, Player[] players) { this.title = title; this.country = country; this.players = players; } void play() { System.out.println("Team " + title + "is playing!"); } @Override public String toString() { return "Team{" + "title='" + title + '\'' + ", country='" + country + '\'' + ", players=" + Arrays.toString(players) + '}'; } } class Player { String name; int age; int yearsOfExperience; public Player(String name, int age, int yearsOfExperience) { this.name = name; this.age = age; this.yearsOfExperience = yearsOfExperience; } void introduce() { System.out.println("Hi, my name is " + name + ", I am " + age + " years old and have " + yearsOfExperience + " years of experience"); } @Override public String toString() { return "Player{" + "name='" + name + '\'' + ", age=" + age + ", yearsOfExperience=" + yearsOfExperience + '}'; } }

Ми створили 3 об'єкти класу Player та ініціалізували їх поля через конструктор. Далі створюємо масив типу Player і додаємо до нього Bob, Alice та John. Потім створюємо об'єкт Team і ініціалізуємо його поля через конструктор. Поле players[] ініціалізуємо раніше створеним масивом. Виводимо об'єкт у консоль і бачимо, що об'єкт Team містить об'єкти Player у результаті виводу.

Власник і улюбленець

Розглянемо ще один простіший приклад. Припустимо, у нас є Owner і Pet. Для кожного створимо окремий клас. Клас Pet матиме лише одне поле — String name. Клас Owner матиме два поля — String name та Pet pet.

Pet.java

Pet.java

copy
123456789101112131415161718
class Pet { String name; public Pet(String name) { this.name = name; } } class Owner { String name; Pet pet; public Owner(String name, Pet pet) { this.name = name; this.pet = pet; } }

Як ви можете бачити, ці два класи також пов'язані між собою, оскільки клас Owner має поле типу Pet (це клас, який ми створили самостійно!).

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 1
some-alt