Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Utilizzo di Classi Complesse | Classi Avanzate
Java Avanzato
course content

Contenuti del Corso

Java Avanzato

Java Avanzato

1. Struttura Profonda di Java
2. Metodi
3. String Avanzato
4. Classi
5. Classi Avanzate

book
Utilizzo di Classi Complesse

Utilizzo di oggetti di classe in un'altra classe

Ora discuteremo l'uso più complesso delle classi, in particolare l'utilizzo di oggetti di classe all'interno di un'altra classe.

Squadra e giocatori

Immaginiamo una situazione in cui abbiamo una classe Team. Ogni squadra dovrebbe avere dei giocatori. Potremmo riempire il campo players con semplici valori String che rappresentano i loro nomi, ma non sarebbe la pratica migliore. Sarebbe molto meglio creare una classe Player con i propri campi e metodi e poi creare un array di oggetti Player all'interno della classe Team. Consideriamo un esempio:

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

Come puoi vedere, stiamo utilizzando un array di oggetti Player nel campo players della classe Team. Da ciò possiamo trarre alcune conclusioni:

  1. È possibile creare array di oggetti a partire da una classe creata da noi;
  2. È possibile utilizzare oggetti di una classe all'interno di un'altra classe per migliorare la logica complessiva.

Ma sorge una domanda: Come si riempie questo array?

Risposta: Per farlo, è necessario creare diversi oggetti Player e aggiungerli all'array di giocatori. Creiamo un Dream Team nel metodo main e vediamo un esempio:

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

Abbiamo creato 3 oggetti della classe Player e inizializzato i loro campi tramite il costruttore. Successivamente creiamo un array di tipo Player e vi aggiungiamo Bob, Alice e John. Poi creiamo un oggetto Team e inizializziamo i suoi campi tramite il costruttore. Inizializziamo il campo players[] con l'array creato in precedenza. Stampiamo l'oggetto sulla console e vediamo che l'oggetto Team contiene oggetti Player nell'output.

Proprietario e animale domestico

Vediamo un altro esempio più semplice. Supponiamo di avere un Owner e un Pet. Creeremo una classe separata per ciascuno. La classe Pet avrà un solo campo - String name. La classe Owner avrà due campi - String name e 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; } }

Come puoi vedere, queste due classi sono anch'esse collegate, poiché la classe Owner possiede un campo di tipo Pet (che è la classe che abbiamo creato noi stessi!).

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 1

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

course content

Contenuti del Corso

Java Avanzato

Java Avanzato

1. Struttura Profonda di Java
2. Metodi
3. String Avanzato
4. Classi
5. Classi Avanzate

book
Utilizzo di Classi Complesse

Utilizzo di oggetti di classe in un'altra classe

Ora discuteremo l'uso più complesso delle classi, in particolare l'utilizzo di oggetti di classe all'interno di un'altra classe.

Squadra e giocatori

Immaginiamo una situazione in cui abbiamo una classe Team. Ogni squadra dovrebbe avere dei giocatori. Potremmo riempire il campo players con semplici valori String che rappresentano i loro nomi, ma non sarebbe la pratica migliore. Sarebbe molto meglio creare una classe Player con i propri campi e metodi e poi creare un array di oggetti Player all'interno della classe Team. Consideriamo un esempio:

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

Come puoi vedere, stiamo utilizzando un array di oggetti Player nel campo players della classe Team. Da ciò possiamo trarre alcune conclusioni:

  1. È possibile creare array di oggetti a partire da una classe creata da noi;
  2. È possibile utilizzare oggetti di una classe all'interno di un'altra classe per migliorare la logica complessiva.

Ma sorge una domanda: Come si riempie questo array?

Risposta: Per farlo, è necessario creare diversi oggetti Player e aggiungerli all'array di giocatori. Creiamo un Dream Team nel metodo main e vediamo un esempio:

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

Abbiamo creato 3 oggetti della classe Player e inizializzato i loro campi tramite il costruttore. Successivamente creiamo un array di tipo Player e vi aggiungiamo Bob, Alice e John. Poi creiamo un oggetto Team e inizializziamo i suoi campi tramite il costruttore. Inizializziamo il campo players[] con l'array creato in precedenza. Stampiamo l'oggetto sulla console e vediamo che l'oggetto Team contiene oggetti Player nell'output.

Proprietario e animale domestico

Vediamo un altro esempio più semplice. Supponiamo di avere un Owner e un Pet. Creeremo una classe separata per ciascuno. La classe Pet avrà un solo campo - String name. La classe Owner avrà due campi - String name e 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; } }

Come puoi vedere, queste due classi sono anch'esse collegate, poiché la classe Owner possiede un campo di tipo Pet (che è la classe che abbiamo creato noi stessi!).

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 1
some-alt