Verwendung Komplexer Klassen
Verwendung von Klassenobjekten in einer anderen Klasse
Nun besprechen wir die komplexere Nutzung von Klassen, insbesondere die Verwendung von Klassenobjekten innerhalb einer anderen Klasse.
Team und Spieler
Stellen wir uns eine Situation vor, in der wir eine Team-Klasse haben. Jedes Team sollte Spieler haben. Wir könnten das Feld players mit einfachen String-Werten füllen, die ihre Namen repräsentieren, aber das wäre nicht die beste Vorgehensweise. Es ist deutlich besser, eine Player-Klasse mit eigenen Feldern und Methoden zu erstellen und dann ein Array von Player-Objekten innerhalb der Team-Klasse zu verwenden.
Betrachten wir ein Beispiel:
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"); } }
Wie Sie sehen, verwenden wir ein Array von Player-Objekten im Feld players der Team-Klasse. Daraus lassen sich einige Schlussfolgerungen ziehen:
- Es können Objekt-Arrays aus selbst erstellten Klassen erzeugt werden;
- Objekte einer Klasse können innerhalb einer anderen Klasse verwendet werden, um die Logik insgesamt zu verbessern.
Es stellt sich jedoch die Frage: Wie füllen wir dieses Array?
Antwort: Dazu müssen mehrere Player-Objekte erstellt und dem Spieler-Array hinzugefügt werden. Erstellen wir ein Dream Team in der Main-Methode und betrachten ein Beispiel:
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 + '}'; } }
Wir haben 3 Objekte der Klasse Player erstellt und deren Felder über den Konstruktor initialisiert. Anschließend erstellen wir ein Array vom Typ Player und fügen Bob, Alice und John hinzu.
Als Nächstes erstellen wir ein Team-Objekt und initialisieren dessen Felder über den Konstruktor. Das Feld players[] wird mit dem zuvor erstellten Array initialisiert.
Wir geben das Objekt in der Konsole aus und sehen, dass das Team-Objekt Player-Objekte im Output enthält.
Besitzer und Haustier
Betrachten wir ein weiteres, einfacheres Beispiel. Angenommen, wir haben einen Owner und ein Pet. Für jede Klasse wird eine eigene Klasse erstellt.
Die Klasse Pet enthält nur ein Feld – String name.
Die Klasse Owner enthält zwei Felder – String name und 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; } }
Wie ersichtlich, sind diese beiden Klassen ebenfalls miteinander verbunden, da die Klasse Owner ein Feld vom Typ Pet enthält (welches die von uns selbst erstellte Klasse ist!).
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you show me the code examples for these classes?
How do I create and link Owner and Pet objects in practice?
What are the benefits of using objects of one class inside another?
Awesome!
Completion rate improved to 2.63
Verwendung Komplexer Klassen
Swipe um das Menü anzuzeigen
Verwendung von Klassenobjekten in einer anderen Klasse
Nun besprechen wir die komplexere Nutzung von Klassen, insbesondere die Verwendung von Klassenobjekten innerhalb einer anderen Klasse.
Team und Spieler
Stellen wir uns eine Situation vor, in der wir eine Team-Klasse haben. Jedes Team sollte Spieler haben. Wir könnten das Feld players mit einfachen String-Werten füllen, die ihre Namen repräsentieren, aber das wäre nicht die beste Vorgehensweise. Es ist deutlich besser, eine Player-Klasse mit eigenen Feldern und Methoden zu erstellen und dann ein Array von Player-Objekten innerhalb der Team-Klasse zu verwenden.
Betrachten wir ein Beispiel:
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"); } }
Wie Sie sehen, verwenden wir ein Array von Player-Objekten im Feld players der Team-Klasse. Daraus lassen sich einige Schlussfolgerungen ziehen:
- Es können Objekt-Arrays aus selbst erstellten Klassen erzeugt werden;
- Objekte einer Klasse können innerhalb einer anderen Klasse verwendet werden, um die Logik insgesamt zu verbessern.
Es stellt sich jedoch die Frage: Wie füllen wir dieses Array?
Antwort: Dazu müssen mehrere Player-Objekte erstellt und dem Spieler-Array hinzugefügt werden. Erstellen wir ein Dream Team in der Main-Methode und betrachten ein Beispiel:
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 + '}'; } }
Wir haben 3 Objekte der Klasse Player erstellt und deren Felder über den Konstruktor initialisiert. Anschließend erstellen wir ein Array vom Typ Player und fügen Bob, Alice und John hinzu.
Als Nächstes erstellen wir ein Team-Objekt und initialisieren dessen Felder über den Konstruktor. Das Feld players[] wird mit dem zuvor erstellten Array initialisiert.
Wir geben das Objekt in der Konsole aus und sehen, dass das Team-Objekt Player-Objekte im Output enthält.
Besitzer und Haustier
Betrachten wir ein weiteres, einfacheres Beispiel. Angenommen, wir haben einen Owner und ein Pet. Für jede Klasse wird eine eigene Klasse erstellt.
Die Klasse Pet enthält nur ein Feld – String name.
Die Klasse Owner enthält zwei Felder – String name und 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; } }
Wie ersichtlich, sind diese beiden Klassen ebenfalls miteinander verbunden, da die Klasse Owner ein Feld vom Typ Pet enthält (welches die von uns selbst erstellte Klasse ist!).
Danke für Ihr Feedback!