Використання Складних Класів
Використання об'єктів класу в іншому класі
Тепер розглянемо більш складне використання класів, а саме використання об'єктів класу всередині іншого класу.
Команда та гравці
Уявімо ситуацію, коли у нас є клас Team
. Кожна команда повинна мати гравців. Ми могли б заповнити поле players
простими значеннями типу String
, які представляють їхні імена, але це не було б найкращою практикою. Набагато краще створити клас Player
з власними полями та методами, а потім створити масив об'єктів Player
у класі Team
.
Розглянемо приклад:
Team.java
1234567891011121314151617181920212223242526class 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
. З цього можна зробити кілька висновків:
- Можна створювати масиви об'єктів із власного створеного класу;
- Можна використовувати об'єкти одного класу всередині іншого класу для покращення загальної логіки.
Але виникає питання: Як заповнити цей масив?
Відповідь: Для цього потрібно створити кілька об'єктів Player
і додати їх до масиву гравців. Створимо Dream Team у головному методі та розглянемо приклад:
Main.java
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465package 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
123456789101112131415161718class 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
(це клас, який ми створили самостійно!).
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.63
Використання Складних Класів
Свайпніть щоб показати меню
Використання об'єктів класу в іншому класі
Тепер розглянемо більш складне використання класів, а саме використання об'єктів класу всередині іншого класу.
Команда та гравці
Уявімо ситуацію, коли у нас є клас Team
. Кожна команда повинна мати гравців. Ми могли б заповнити поле players
простими значеннями типу String
, які представляють їхні імена, але це не було б найкращою практикою. Набагато краще створити клас Player
з власними полями та методами, а потім створити масив об'єктів Player
у класі Team
.
Розглянемо приклад:
Team.java
1234567891011121314151617181920212223242526class 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
. З цього можна зробити кілька висновків:
- Можна створювати масиви об'єктів із власного створеного класу;
- Можна використовувати об'єкти одного класу всередині іншого класу для покращення загальної логіки.
Але виникає питання: Як заповнити цей масив?
Відповідь: Для цього потрібно створити кілька об'єктів Player
і додати їх до масиву гравців. Створимо Dream Team у головному методі та розглянемо приклад:
Main.java
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465package 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
123456789101112131415161718class 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
(це клас, який ми створили самостійно!).
Дякуємо за ваш відгук!