  |
Trattiamo gli elementi a metà tra oggetti e tipi primitivi di Java |
Vediamo adesso due importanti tipi di dato che sono a metà tra i tipi primitivi e i oggetti. In realtà strettamente parlando si tratta di classi, ma che per il loro uso particolarmente frequente e intenso sono stati promossi, e hanno ottenuto alcune caratteristiche dei tipi primitivi.
  |
Gli array, sequenze (di tipi di dato) |
Innanzitutto consideriamo le schiere (o array) ovvero il tipo di dato derivato che rappresenta una sequenza di elementi tutti nello stesso tipo. È importante osservare che una schiera, una volta creata, ha un numero di elementi fisso, e che gli elementi contenuti sono tutti del nello stesso tipo.
Un'altra cosa importante è il fatto che c'è differenza tra una schiera di interi e un intero. Curiosamente l'intero è un tipo primitivo mentre la schiera di interi è un tipo derivato, ovvero una classe.
  |
Le stringhe, sequenze di caratteri |
L'altra importante classe che ha caratteristiche da tipo primitivo è la stringa. Una stringa è una sequenza di caratteri. Una stringa può contenere solamente caratteri, e una delle sue caratteristiche principali è il fatto che è immutabile.
Dire che le stringhe sono immutabili significa dire che, una volta che è stata creata una istanza, non è possibile modificarla. È possibile creare un'altra stringa che contiene caratteri diversi, ma la classe stringa non dispone di metodi che consentono la modifica dei caratteri in essa contenuti.
  |
Le Stringhe e gli Array sono a tutti gli effetti degli oggetti. |
A scanso di equivoci precisiamo che sia le stringhe che le schiere sono a tutti gli effetti degli oggetti, e si comportano come tali. In particolare una variabile stringa o schiera può contenere solamente un riferimento a una stringa o una schiera, ma non contiene completamente l'oggetto.
Analogamente vedremo che entrambi tipi di dato hanno sia campi che metodi.
  |
Hanno una sintassi speciale per la costruzione: simili a costanti. |
  |
Hanno una sintassi speciale per alcuni metodi: simili a operatori. |
Vediamo adesso le differenze che rendono queste classi un pò speciali. In generale le istanze delle classi si creano chiamando costruttori e invocando metodi. Sia stringhe che schiere hanno particolari costrutti sintattici, per cui possono essere create con delle costanti e utilizzate con degli operatori.
  |
Si tratta di zucchero sintattico |
La sintassi speciale di stringhe e schiere può essere considerata esclusivamente "zucchero sintattico". Si tratta cioè di abbreviazioni, che permettono di scrivere in maniera più rapide e concisa operazioni che altrimenti richiederebbero una sintassi ben più lunga da scrivere.
|