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

<<< Classi >>>
Le classi implementano il principio dell'incapsulazione


Esaminiamo adesso come si realizza praticamente ed effettivamente un oggetto. Come abbiamo già detto una classe è il modello di un oggetto, ne definisce il tipo e dice cosa contiene e come si deve comportare l'oggetto in risposta alle richieste dall'esterno (le chiamate dei metodi).

i campi reppresentano lo stato interno di un oggetto

Nella programmazione ad oggetti i dati non sono esposti al pubblico come nella tradizionale programmazione strutturata. Infatti quando si programma in linguaggi come il pascal classico si hanno "strutture dati" che vengono gestiti da "algoritmi". Ricordiamo infatti che il famoso libro di Wirth che è uno dei capisaldi della storia dell'informatica (e che presenta il linguaggio Pascal) si intitolava: "Algoritmi + Strutture Dati = Programmi". Nella programmazione ad oggetti le strutture dati sono invece un dettaglio, che non deve essere reso noto ma protetto dall'esterno per evitare che qualcuno possa maniporarlo in maniera scorretta. Le informazioni contenute in un oggetto sono racchiuse al suo interno, nelle sue strutture dati che rappresentano appunto l'informazione riservata "incapsulata".

i metodi permettono di cambiare lo stato in modo controllato

Ovviamente un programma per funzionare deve poter modificare le strutture dati. La programmazione ad oggetti non nega che l'algoritmo deve agire sulle strutture dati. Pretende però che si dica una volta e per tutte quali sono gli algoritmi e su quali strutture dati agiscono. Notare che nememeno gli algoritmi sono pubblici: anche essi rappresentano un dettaglio implementativo che viene nascosto all'esterno. L'utilizzatore potrà solamente invocare i metodi di un oggetto. Il fatto che i metodi siano i soli a poter accedere alle strutture dati garantisce che l'oggetto modifichi il suo stato interno in modo controllato e prevedibile. Pensiamo ad uno stack: siccome gli unici modi che ho per modificarlo sono i metodi push e pop, se implemento correttamente gli algoritmi sono messo al sicuro da situazion in cui per esempio il contatore di elementi non coincida con il numero di elementi effettivamente presenti nello stack.

i costruttori inizializzano l'oggetto in uno stato noto

Quindi, io creo uno stack vuoto. Poi aggiungo un elemento con push. Di conseguenza ho uno stack con un elemento. Da qui posso svuotarlo con pop o aggiungere un altro elemento con push. Come si vede l'oggetto si muove entro dei binari ben predefiniti. L'ultimo elemento che rimane da aggiungere al tassello è appunto la creazione di cui ne abbiamo parlato. Serve per definire e creare nuovi oggetti, ed è un concetto importante quanto quello di metodo o di campo. In programmazione a oggetti, si chiamano costruttori le funzioni che vengono invocate per inizializzare un oggetto. I costruttori in un certo senso sono metodi, ma sono metodi speciali. Infatti non necessitano di un oggetto per essere utilizzati (a differenza dei metodi veri e propri) e come risultato della loro invocazione creano un nuovo oggetto.

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