Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Verwendung Komplexer Klassen | Klassen Fortgeschritten
Java Erweitert
course content

Kursinhalt

Java Erweitert

Java Erweitert

1. Tiefe Java-Struktur
2. Methoden
3. String Advanced
4. Klassen
5. Klassen Fortgeschritten

book
Verwendung Komplexer Klassen

Verwendung von Klassenobjekten in einer anderen Klasse

Nun werden wir die komplexere Verwendung von Klassen besprechen, 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 players-Feld mit einfachen String-Werten füllen, die ihre Namen darstellen, aber das wäre nicht die beste Praxis. Es wäre viel besser, eine Player-Klasse mit eigenen Feldern und Methoden zu erstellen und dann ein Array von Player-Objekten innerhalb der Team-Klasse zu erstellen. Betrachten wir ein Beispiel:

java

Team

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

Wie Sie sehen können, verwenden wir ein Array von Player-Objekten im players-Feld der Team-Klasse. Daraus können wir einige Schlussfolgerungen ziehen:

  1. Wir können Objekt-Arrays aus unserer eigenen erstellten Klasse erstellen;
  2. Wir können Objekte einer Klasse innerhalb einer anderen Klasse verwenden, um die gesamte Logik zu verbessern.

Aber die Frage stellt sich: Wie füllen wir dieses Array?

Antwort: Dazu müssen wir mehrere Player-Objekte erstellen und sie dem Array von Spielern hinzufügen. Lassen Sie uns im Hauptprogramm ein Dream Team erstellen und ein Beispiel sehen:

java

Main

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

Wir haben 3 Objekte der Player-Klasse erstellt und ihre Felder über den Konstruktor initialisiert. Dann erstellen wir ein Array mit dem Typ Player und fügen Bob, Alice und John hinzu. Als nächstes erstellen wir ein Team-Objekt und initialisieren seine Felder über den Konstruktor. Wir initialisieren das players[]-Feld mit dem zuvor erstellten Array. Wir drucken das Objekt auf die Konsole und sehen, dass das Team-Objekt Player-Objekte in der Ausgabe hat.

Besitzer und Haustier

Schauen wir uns ein weiteres einfacheres Beispiel an. Angenommen, wir haben einen Owner und ein Pet. Wir werden für jeden eine separate Klasse erstellen. Die Pet-Klasse wird nur ein Feld haben - String name. Die Owner-Klasse wird zwei Felder haben - String name und Pet pet.

java

Pet

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

Wie Sie sehen können, sind diese beiden Klassen ebenfalls verbunden, da die Klasse Owner ein Feld vom Typ Pet hat (welches die Klasse ist, die wir selbst erstellt haben!).

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 1
We're sorry to hear that something went wrong. What happened?
some-alt