In Java un oggetto è dotato di un determinato tipo. Gli oggetti vengono anche chiamati istanze. Ogni oggetto è un'istanza di una classe o di un tipo array.

Java

Linguaggio Java
Linguaggio Java

categoria · sviluppo · modifica
Come posso contribuire?

→ Vai su Wikiversity

Java:  Guida alla programmazioneJava/Introduzione - Specifica di linguaggio - Libreria standardJava/Comunicazione seriale

Tipi di datoJava/Tipi di datoEspressioniJava/OperatoriVariabiliJava/Variabili localiIstruzioniJava/IstruzioniStrutture di controlloJava/Strutture di controlloPackageJava/Package
Classi e oggettiJava/Classi e oggettiOggettiJava/OggettiMetodiJava/MetodiMetodi (cont.)Java/Metodi/2ArrayJava/Array
Modificatori di accessoJava/Modificatori di accessoEreditarietàJava/Ereditarietà
Gestione delle eccezioniJava/Gestione delle eccezioniGenericsJava/Generics
Thread e parallelismoJava/MultithreadingInterblocco ricontrollatoJava/Interblocco ricontrollato
Alcune differenze con il CJava/Concetti fondamentaliLessicoJava/LessicoGrammaticaJava/Grammatica

Creazione e utilizzo

modifica

Gli oggetti si creano con l'operatore new. L'oggetto verrà creato in un'area di memoria chiamata heap. Questa area viene periodicamente scansionata dal garbage collector, che si occupa di scovare gli oggetti non più utilizzati dal programma e liberare la memoria corrispondente (affinché possa essere utilizzata dai nuovi oggetti che saranno allocati in seguito).

Il valore null

Il simbolo null rappresenta un valore che non è il reference di nessun oggetto. Esempio di utilizzo:

    Object o = null;

Inizializzazione dei campi

modifica

A differenza di quanto avviene con le variabili locali, alla creazione di un oggetto i suoi campi sono automaticamente inizializzati ad un certo valore di default. Vedi anche la pagina "Java/Variabili locali#Caratteristiche".

Oggetti e reference

modifica

In Java, gli oggetti non vengono utilizzati direttamente, ma solo attraverso i loro reference. Ad esempio, l'operatore new crea un nuovo oggetto in memoria e restituisce il suo reference, il quale può essere messo in una variabile, passato come argomento ad un metodo, o usato direttamente:

    // crea un oggetto di classe java.lang.Object e ne scrive il reference nella variabile obj
    Object obj = new Object();
    
    // crea un oggetto di classe java.lang.Object e ne passa il reference come argomento del metodo
    // println():
    System.out.println( new Object() );
    
    // crea un oggetto di classe java.lang.Object e ne invoca un certo metodo:
    new Object().toString();
    
    // è possibile anche creare un oggetto senza utilizzarlo:
    new Object(); // utilizzabile ad es. per vuole eseguire il solo costruttore e non alcun altro metodo dell'oggetto


Il codice seguente crea un oggetto e ne copia il reference in due variabili distinte:

    List<Object> l = new ArrayList<Object>();
    List<Object> m = l;

Le modifiche apportate ad un oggetto sono visibili tramite ciascuno dei due reference:

    l.add(new Object());
    System.out.println(l.size() == m.size()); // stampa a video il valore "true"


Usare questo meccanismo ha diverse implicazioni. Ad esempio:



  Questo modulo è solo un abbozzo. Contribuisci a migliorarlo secondo le convenzioni di Wikibooks