Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Anatomia di un Oggetto in Java, Schemi e mappe concettuali di Programmazione Java

Argomenti trattati 1. L'Anatomia di un Oggetto Java 2. Variabili d'Istanza e Variabili di Classe 3. I Costruttori 4. I Metodi 5. Overloading dei Metodi

Tipologia: Schemi e mappe concettuali

2025/2026

In vendita dal 17/04/2026

airruh
airruh 🇮🇹

4.7

(17)

73 documenti

1 / 8

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Anatomia di un Oggetto Java
Programmazione Orientata agli Oggetti in Java
Documento educativo — Corso Java da Zero
Argomenti trattati
1. L'Anatomia di un Oggetto Java
2. Variabili d'Istanza e Variabili di Classe
3. I Costruttori
4. I Metodi
5. Overloading dei Metodi
pf3
pf4
pf5
pf8

Anteprima parziale del testo

Scarica Anatomia di un Oggetto in Java e più Schemi e mappe concettuali in PDF di Programmazione Java solo su Docsity!

Anatomia di un Oggetto Java

Programmazione Orientata agli Oggetti in Java

Documento educativo — Corso Java da Zero

Argomenti trattati

  1. L'Anatomia di un Oggetto Java
  2. Variabili d'Istanza e Variabili di Classe
  3. I Costruttori
  4. I Metodi
  5. Overloading dei Metodi

1. L'Anatomia di un Oggetto Java

Un oggetto in Java è composto da una serie di componenti fondamentali che ne definiscono la struttura e il comportamento. Questi componenti sono:

  • Variabili d'istanza e variabili di classe : i dati che descrivono lo stato dell'oggetto.
  • Costruttori : i metodi speciali utilizzati per creare e inizializzare nuovi oggetti.
  • Metodi : le operazioni che l'oggetto è in grado di eseguire.

L'insieme di variabili d'istanza, costruttori e metodi d'istanza forma quella che viene definita l'anatomia di un Oggetto Java.

Schema strutturale di una classe Java:

Componente Parola chiave / Caratteristica Scopo Variabile d'istanza private / public (campo) Memorizza lo stato dell'oggetto Variabile di classe static Valore condiviso tra tutti gli oggetti Costruttore Stesso nome della classe, no return Crea e inizializza l'oggetto Metodo d'istanza Legato all'oggetto (this) Definisce le azioni dell'oggetto Metodo di classe static Agisce sulla classe, non su un'istanza

nn Modificare una variabile static attraverso un'istanza aggiorna il valore per tutti gli oggetti della classe, non solo per quell'istanza.

Esempio — dichiarazione di variabili d'istanza e di classe:

public class Prodotto { // Variabili d'istanza (ogni oggetto ha il proprio valore) private String nome; private float prezzo; // Variabile di classe (condivisa da tutti gli oggetti) public static String nomeProduttore; }

3. I Costruttori

Il costruttore è un metodo speciale di una classe il cui scopo è creare una nuova istanza e inizializzarne lo stato, ovvero assegnare valori iniziali alle variabili d'istanza. Viene invocato automaticamente da Java quando si utilizza l'operatore new.

  • Il nome del costruttore è sempre uguale al nome della classe.
  • I costruttori non hanno tipo di ritorno (nemmeno void).
  • In Java possono esistere più costruttori per la stessa classe, ciascuno con parametri diversi.
  • Se il programmatore non definisce alcun costruttore, il compilatore aggiunge automaticamente un costruttore di default (senza argomenti, senza istruzioni).
  • I costruttori sono generalmente dichiarati public per consentire la creazione di oggetti da qualsiasi punto del programma.

La parola chiave this

All'interno di un costruttore (o di un qualsiasi metodo d'istanza), la parola chiave this fa riferimento all'oggetto corrente. È particolarmente utile per distinguere le variabili d'istanza dai parametri del costruttore quando hanno lo stesso nome.

nn IMPORTANTE: la parola chiave this ha senso solo quando dalla classe viene generato un oggetto (non nei metodi statici).

Esempio — classe con tre costruttori:

public class Prodotto { private String nome; private float prezzo; public static String nomeProduttore; // Costruttore 1: nome e prezzo public Prodotto(String nome, float prezzo) { this.nome = nome; this.prezzo = prezzo; } // Costruttore 2: solo nome public Prodotto(String nome) { this.nome = nome; } // Costruttore 3: senza parametri (default) public Prodotto() { } }

Come Java seleziona il costruttore:

Java determina quale costruttore invocare in base al numero e al tipo dei parametri passati con l'operatore new:

Prodotto p1 = new Prodotto("Pane", 2); // -> Costruttore 1 Prodotto p2 = new Prodotto("Latte"); // -> Costruttore 2 Prodotto p3 = new Prodotto(); // -> Costruttore 3

4.2 Metodi di Classe (static)

I metodi di classe sono definiti con la parola chiave static e agiscono sulla classe nel suo insieme, non su una specifica istanza. Possono essere invocati direttamente tramite il nome della classe, senza creare un oggetto:

  • Non accedono alle variabili d'istanza.
  • Possono accedere solo a variabili e altri metodi statici.
  • Vengono invocati con la sintassi: NomeClasse.nomeMetodo(parametri).

Esempio — metodi statici:

public class Operazioni { public static int somma(int a, int b) { return a

  • b; } public static int sottrazione(int a, int b) { return a - b; } } // Chiamata senza istanziare la classe: int risultato1 = Operazioni.somma(2, 3); // 5 int risultato2 = Operazioni.sottrazione(5, 2); // 3

5. Overloading dei Metodi

In Java ogni metodo è identificato dalla propria firma (o signature ), che comprende il nome del metodo e la lista dei tipi dei parametri. La firma deve essere unica all'interno di una classe.

L' overloading consiste nel definire più metodi con lo stesso nome ma con firme diverse, cioè con numero e/o tipi di parametri differenti. Sarà il compilatore a selezionare automaticamente il metodo corretto in base agli argomenti passati al momento della chiamata.

Regole fondamentali:

  • Due metodi possono avere lo stesso nome se differiscono per numero e/o tipo dei parametri.
  • Il tipo di ritorno NON fa parte della firma : due metodi con stessa lista di parametri ma tipo di ritorno diverso costituiscono un errore di compilazione.
  • I nomi dei parametri non fanno parte della firma.
  • L'overloading si applica sia ai metodi d'istanza sia ai metodi di classe.

Esempio — overloading valido:

public void stampa(char x) { ... } // OK: tipo diverso public void stampa(int x) { ... } // OK: tipo diverso public void stampa(int x, int y) { ... } // OK: numero diverso

Esempio — overloading NON valido (errore di compilazione):

public int getNumero(int lato) { ... } public float getNumero(int lato) { ... } // ERRORE: stessa firma! I due metodi hanno la stessa firma (nome + lista tipi parametri = getNumero(int)), quindi non sono ammissibili. Per risolvere occorre usare un nome diverso, un numero di parametri diverso o tipi di parametri diversi.

L'overloading e i costruttori:

Il concetto di overloading si applica anche ai costruttori: è proprio grazie all'overloading che una classe può avere più costruttori con parametri diversi, come visto nell'esempio della classe Prodotto nella sezione 3.

Riepilogo — L'insieme di variabili d'istanza, costruttori e metodi d'istanza forma l' anatomia di un Oggetto Java.