ePrometeusCorsoJavaJava
testi articoli
Testi Articoli  Download
Home | Basi | Espressioni | Comandi | Classi | Ereditarieta | Eccezioni | Thread | Utilita | 
CorsoJava è ora Video! Free for all!
Clicca Qui!

Classi
OOP
Ereditarietà
Polimorfismo
Chiamata
Classi
Record
Istanze
Costruttori
Campi
this
Allocazione
Più costruttori
this()
Inizializzazioni
Riferimenti
Ordine
Metodi
Invocazione
Overloading
Attenzione
Finalizzazione
Static e Final
Campi statici
Blocco static
Metodi statici
Visibilità
Costanti
Package
import
import *
Classpath
L'interprete
Zip e Jar

<<< OOP >>>
Classe

Innanzitutto rendiamoci conto di che cosa è una classe. Ecco un esempio:

class Pesce {
 int velocita;
 void nuota() { ... }
}
Modello di oggetto

Una classe è un modello di oggetto. È importante capire che quando dichiaro una classe, non ho fatto (ancora) niente: ho solo specificato cosa voglio, ma senza aver creato nulla che fa quello che voglio. Ho creato una forma, uno stampino nel quale mettendo il gesso o la cera creerò effettivamente l'oggetto che potrò poi usare davvero.

campi

Nella classe possiamo riconoscere il campo e il metodo. Il campo nella programmazione ad oggetti rapprensenta lo stato interno dell'oggetto, ed è generalmente (ma non sempre) inaccessibile dall'esterno. Per intenderci, consideriamo ancora la radio: quando è sintonizzata su una stazione, significa che certi elementi al suo interno (per esempio, potenziometri) hanno una certa posizione, che è quindi lo stato in cui si trova l'oggetto. Questi elementi sono però inaccessibili direttamente dall'esterno: il guscio della radio li protegge.

metodi

Proprio per consentire a chi sta fuori della radio di manipolarne lo stato, e quindi in ultima analisi di poter cambiare stazione o alzare il volume, il progettista della radio ha messo a disposizione delle manopole, che con artifici meccanici permettono, IN MANIERA CONTROLLATA, di modificare lo stato interno della radio. In un oggetto software, i metodi hanno la stessa funzione: sono l'interfaccia con il mondo esterno, e rappresentano gli elementi con cui deve interagire chi la radio la deve solo usare. Il progettista ha appositamente messo a disposizione solo ciò che è previsto debba venire usato.

Istanza

Abbiamo finora parlato della classe, che rappresenta un modello di oggetti. Infatti definendo una classe, non esistono (con la sola eccezione dei campi statici, che dobbiamo ancora vedere) i campi della classe: questi appartengono ad una istanza che deve essere appositamente creata. Definire una classe è come fare un progetto: progettare le automobili non significa costruirle effettivamente. Solo quando il progetto viene effettivamente realizzato avremo una delle automobili che abbiamo progettato.

Incarnazione del modello
Pesce p = new Pesce()

Istanziare significa creare un oggetto che occupa memoria e che ha (almeno) lo spazio per memorizzare i campi.

Una classe molte istanze

È importante capire che ad una classe corrispondono in generale molte istanze, e ogni istanza ha le sue variabili ad essa dedicate.

Metodi invocati sull'istanza
p.nuota()

I metodi però generalmente agiscono solamente su una data istanza. Intuitivamente è facile da capire: il metodo accendi di una radio si applica solo quando ho effettivamente ho la radio sottomano. Allo stesso modo per invocare il metodo ho bisogno dell'oggetto su cui invocarla. Tutto questo discorso per il momento lo manteniamo a livello intuitivo ma lo riprenderemo più tecnicamente per meglio illustrare i modi in cui funziona la programmazione ad oggetti in Java.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com