Gebruik van Complexe Klassen
Klasse-objecten gebruiken in een andere klasse
Nu bespreken we het complexere gebruik van klassen, namelijk het gebruik van klasse-objecten binnen een andere klasse.
Team en spelers
Stel je een situatie voor waarin we een Team
-klasse hebben. Elk team moet spelers hebben. We zouden het players
-veld kunnen vullen met eenvoudige String
-waarden die hun namen voorstellen, maar dat is niet de beste praktijk. Het is veel beter om een Player
-klasse te maken met eigen velden en methoden en vervolgens een array van Player
-objecten binnen de Team
-klasse te creëren.
Laten we een voorbeeld bekijken:
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"); } }
Zoals je kunt zien, gebruiken we een array van Player
-objecten in het veld players
van de klasse Team
. Hieruit kunnen we enkele conclusies trekken:
- We kunnen arrays van objecten maken van onze zelfgemaakte klasse;
- We kunnen objecten van de ene klasse binnen een andere klasse gebruiken om de algemene logica te verbeteren.
Maar de vraag rijst: Hoe vullen we deze array?
Antwoord: Hiervoor moeten we meerdere Player
-objecten aanmaken en deze toevoegen aan de array van spelers. Laten we in de main-methode een Dream Team maken en een voorbeeld bekijken:
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 + '}'; } }
We hebben 3 objecten van de klasse Player
aangemaakt en hun velden geïnitialiseerd via de constructor. Vervolgens maken we een array met het type Player
en voegen Bob, Alice en John toe.
Daarna maken we een Team
-object aan en initialiseren we de velden via de constructor. We initialiseren het veld players[]
met de eerder aangemaakte array.
We printen het object naar de console en zien dat het Team
-object Player
-objecten bevat in de uitvoer.
Eigenaar en huisdier
Laten we naar een ander, eenvoudiger voorbeeld kijken. Stel dat we een Owner
en een Pet
hebben. We maken voor elk een aparte klasse aan.
De klasse Pet
heeft slechts één veld - String name
.
De klasse Owner
heeft twee velden - String name
en 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; } }
Zoals je kunt zien, zijn deze twee klassen ook verbonden, aangezien de Owner
-klasse een veld van het type Pet
heeft (dit is de klasse die we zelf hebben gemaakt!).
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 2.63
Gebruik van Complexe Klassen
Veeg om het menu te tonen
Klasse-objecten gebruiken in een andere klasse
Nu bespreken we het complexere gebruik van klassen, namelijk het gebruik van klasse-objecten binnen een andere klasse.
Team en spelers
Stel je een situatie voor waarin we een Team
-klasse hebben. Elk team moet spelers hebben. We zouden het players
-veld kunnen vullen met eenvoudige String
-waarden die hun namen voorstellen, maar dat is niet de beste praktijk. Het is veel beter om een Player
-klasse te maken met eigen velden en methoden en vervolgens een array van Player
-objecten binnen de Team
-klasse te creëren.
Laten we een voorbeeld bekijken:
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"); } }
Zoals je kunt zien, gebruiken we een array van Player
-objecten in het veld players
van de klasse Team
. Hieruit kunnen we enkele conclusies trekken:
- We kunnen arrays van objecten maken van onze zelfgemaakte klasse;
- We kunnen objecten van de ene klasse binnen een andere klasse gebruiken om de algemene logica te verbeteren.
Maar de vraag rijst: Hoe vullen we deze array?
Antwoord: Hiervoor moeten we meerdere Player
-objecten aanmaken en deze toevoegen aan de array van spelers. Laten we in de main-methode een Dream Team maken en een voorbeeld bekijken:
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 + '}'; } }
We hebben 3 objecten van de klasse Player
aangemaakt en hun velden geïnitialiseerd via de constructor. Vervolgens maken we een array met het type Player
en voegen Bob, Alice en John toe.
Daarna maken we een Team
-object aan en initialiseren we de velden via de constructor. We initialiseren het veld players[]
met de eerder aangemaakte array.
We printen het object naar de console en zien dat het Team
-object Player
-objecten bevat in de uitvoer.
Eigenaar en huisdier
Laten we naar een ander, eenvoudiger voorbeeld kijken. Stel dat we een Owner
en een Pet
hebben. We maken voor elk een aparte klasse aan.
De klasse Pet
heeft slechts één veld - String name
.
De klasse Owner
heeft twee velden - String name
en 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; } }
Zoals je kunt zien, zijn deze twee klassen ook verbonden, aangezien de Owner
-klasse een veld van het type Pet
heeft (dit is de klasse die we zelf hebben gemaakt!).
Bedankt voor je feedback!