Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Gebruik van Complexe Klassen | Geavanceerde Klassen
Java Uitgebreid

bookGebruik 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

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"); } }

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:

  1. We kunnen arrays van objecten maken van onze zelfgemaakte klasse;
  2. 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

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 + '}'; } }

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

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; } }

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!).

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 1

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 2.63

bookGebruik 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

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"); } }

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:

  1. We kunnen arrays van objecten maken van onze zelfgemaakte klasse;
  2. 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

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 + '}'; } }

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

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; } }

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!).

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 1
some-alt