www.calshop.biz

Ultimi Inserimenti

Spywares: cosa sono e come ci si difende
La terminologia "spyware", acronimo di-spia, racchiude, semplificando, una infinità di di vario genere, realizzati allo scopo di memorizzare tutte le preferenze dell'utente, di sottrarre le passwords e logins di accesso a siti riservati, di mantenere traccia dei tasti digitati più frequentemente sulla tastiera, di reindirizzare a siti web warez o porno ecc. ecc. Si calcola che il 90% dei frequentatori di Internet, abbiano il loro PC infetto.
Collegare il Pc alla Televisione
Questo articolo è una piccola guida su come, a livello e principalmente a livello, "portare" il segnale audio e video del vostro pc su una comune tv.
 Smiles
 Traduzioni
 Informazione
 

Hot Link

Balloon Hunter
Arco, frecce e palloncini
L'uomo Cannone
Calcola la forza e l'angolo di tiro e il gioco è fatto.
Gioca con i puzzle
Sobics è un delizioso puzzle game online, completamente
realizzato in Flash.
Game Maker 6
Creiamo i nostri videogiochi
Palline da girare
GateGears
Cheats & Tips
a cura di Fabrizio Miceli
Giochi in Flash Gratis
Tutta l'emozione del Gioco Online
Animazioni Gratis
Stupende animazioni gratis!

 

 

Manuali Gratis: 2005 - 2006  -

Manuali e GuideTrucchi per PCDisegni da colorare e da stampareGif AnimateFlash Games
Manuali e GuideTrucchi per PCDisegniGif AnimateFlash Games
Google
 
Web www.calshop.biz
Manuali e Guide Gratis on line @ calshop.biz ... the only one!

Il linguaggio Java: lez.3

Elenco delle pagine di "Il linguaggio Java: lez.3"

Introduzione al Modulo 3 - Pagina 1
Unità didattica 2.1) - Pagina 2
Unità didattica 2.2) - Pagina 3
Unità didattica 2.3) - Pagina 4
Unità didattica 2.4) - Pagina 5
Unità didattica 2.5) - Pagina 6
Unità didattica 2.6) - Pagina 7


1 | 2 | 3 | 4

   3 - Unità didattica 2.2)

- Le basi della programmazione object oriented: classi ed oggetti

I concetti di classe ed oggetto, sono strettamente legati. Esistono infatti, delle definizioni ufficiali derivanti dalla teoria della programmazione orientata agli oggetti, che di seguito vi presentiamo:

Definizione 1:

una classe è un’astrazione per un gruppo di oggetti che condividono le stesse caratteristiche e le stesse funzionalità.

Definizione 2:

un oggetto è un’istanza (ovvero, una creazione fisica) di una classe.

A questo punto, il lettore più "matematico" sicuramente avrà le idee un po’ confuse. Effettivamente definire il concetto di classe tramite la definizione di oggetto, e il concetto di oggetto tramite la definizione di classe, non è di certo il massimo della chiarezza! Ma la situazione è molto meno complicata di quella che può sembrare. Passiamo subito ad un esempio:

    class Punto

          {

        int x;

        int y;

          }

 

Sopra abbiamo definito una classe Punto. Evidentemente, la funzione di questa classe, è quella di astrarre il concetto di punto (a due dimensioni), tramite la definizione delle sue coordinate su di un piano cartesiano. Potremmo salvare questo listato in un file chiamato "Punto.java", compilarlo, ma non mandarlo in esecuzione (otterremmo un’eccezione). Infatti, in questa classe, è assente il metodo main, e quindi non sarà eseguita nessun’azione inizialmente.

Il concetto di classe è servito per definire come è fatto un generico punto, ma in questo modo, abbiamo solo definito il concetto di punto, in realtà non abbiamo ancora nessun punto da poter utilizzare.

Nel contesto della programmazione ad oggetti, una classe dovrebbe limitarsi a definire che struttura avranno gli oggetti che da essa saranno istanziati. "Istanziare", come abbiamo già visto, è il termine object oriented che sta per "creare fisicamente", ed il risultato di un’istanza deve essere un oggetto.

Istanzieremo allora oggetti dalla classe Punto, nel modo seguente:

1 class Principale

2 {

3     public static void main(String args[])

4        {

5         Punto punto1;

6         punto1 = new Punto();

7         punto1.x = 2;

8         punto1.y = 6;

9         Punto punto2 = new Punto();

10        punto2.x = 0;

11               punto2.y = 1;

12        System.out.println(punto1.x);

13        System.out.println(punto1.y);

14                 System.out.println(punto2.x);

15                   System.out.println(punto2.y);

16      }

17 }

La classe Principale, dichiara alla riga 5, un oggetto di tipo Punto e lo chiama punto1 (così come nella classe Punto avevo dichiarato un intero e lo avevo chiamato x). Ma è solamente alla riga 6 che avviene l’istanza della classe Punto. La parola chiave new, di fatto, istanzia la classe Punto. Dalla riga 6 in poi possiamo utilizzare l’oggetto punto1. Precisamente, alle righe 7 e 8, settiamo le coordinate x ed y del punto1, rispettivamente ai valori interi 2 e 6. In pratica, sfruttando la definizione di punto che mi ha fornito la classe Punto, ho creato un oggetto di tipo Punto, che è individuato dal nome punto1. Notiamo anche, l’utilizzo dell’operatore "dot" (che in inglese significa "punto", ma nel senso del simbolo di punteggiatura ".") per accedere alle variabili x e y.

Alla riga 9, però, abbiamo dichiarato ed istanziato in una sola riga di codice un altro oggetto dalla classe Punto chiamandolo punto2. Abbiamo poi settato le coordinate di quest’ultimo rispettivamente a 0 e 1. Abbiamo infine stampato le coordinate di entrambi i punti.

Ora, le definizioni di classi ed oggetto dovrebbero risultare un po’ più chiare: la classe serve per definire come sarà fatto un oggetto, l’oggetto è la realizzazione fisica della classe. In questo esempio, abbiamo istanziato due oggetti diversi da una stessa classe. Entrambi questi oggetti sono punti, ma evidentemente sono punti diversi.

Questi concetti, come d’altronde tutti quelli relativi alla programmazione ad oggetti, sono già familiari a chiunque, giacchè derivanti dalla realtà che ci circonda. L’essere umano, per superare la complessità della realtà, raggruppa gli oggetti in classi. Per esempio nella nostra mente esiste il modello definito dalla classe Persona. Ma nella realtà esistono miliardi di oggetti di tipo Persona, ognuno dei quali ha caratteristiche uniche. Comprendere le definizioni 1 e 2 ora, non dovrebbe essere più un problema.

N.B.: tutti i concetti dell’object orientation, derivano dal mondo reale. Il concetto di classe nella programmazione, può essere paragonato al concetto di "idea" del mondo reale. Per esempio, volendo definire l’idea (astrazione) di un’auto,dovremmo parlare delle caratteristiche e delle funzionalità comuni ad ogni auto. Quindi, banalizzando, potremmo definire un’auto come"un mezzo di trasporto (quindi che si può muovere), con quattro ruote". Questa definizione può essere portata nella programmazione sotto forma di classe dichiarante come attributo un intero chiamato numeroRuote inizializzato a 4, ed un metodo che potremmo chiamare per semplicità muoviti(). Il lettore è rimandato alle prossime pagine per la comprensione e l’utilizzo del concetto di metodo.

class Auto

{

    int numeroRuote=4;

    void muoviti()

    {

    // implementazione del metodo…

    }

}

Ogni auto ha 4 ruote, e si muove. Una Ferrari Testarossa ed una Fiat Cinquecento, hanno entrambe 4 ruote e si muovono, anche se in modo diverso. La Testarossa e la Cinquecento sono da considerarsi oggetti della classe Auto, e nella realtà esisterebbero come oggetti concreti.

- Osservazione importante

Nel primo esempio abbiamo potuto commentare la definizione di due classi. Per la prima (la classe Punto), abbiamo sottolineato la sua caratteristica di essere un dato. E’ da considerarsi una parte strutturale dell’applicazione, e quindi svolge un ruolo essenziale nell’ambito compilativo. Nell’ambito esecutivo la classe Punto non ha un ruolo. Infatti, sono gli oggetti istanziati da essa che influenzano il flusso di lavoro del programma. Questo può definirsi come il caso standard. In un’applicazione object oriented, una classe dovrebbe limitarsi definire la struttura comune di un gruppo oggetti, non dovrebbe mai possedere né variabili né metodi. Infatti, la classe Punto, non possiede le variabili x e y, bensì, dichiarando le due variabili, definisce gli oggetti che da essa saranno istanziati, come possessori di quelle variabili. Notare che mai all’interno del codice è presente un’istruzione come:

    Punto.x

ovvero

    nomeClasse.nomeVariabile

(che tra l’altro produrrebbe un errore in compilazione) bensì:

    punto1.x

ovvero

    nomeOggetto.nomeVariabile

L’operatore ".", come spesso accade nell’informatica, è sinonimo di appartenenza, e quindi sono gli oggetti a possedere le variabili dichiarate nella classe (che tra l’altro verranno dette "variabili d’istanza"). Infatti, i due oggetti istanziati avevano valori diversi per x e y, il che significa che l’oggetto punto1 ha la sua variabile x e la sua variabile y, mentre l’oggetto punto2 ha la sua variabile x e la sua variabile y. Le variabili di punto1 sono assolutamente indipendenti dalle variabili di punto2. Giacché le classi non hanno membri (variabili e metodi), non eseguono codice e non hanno un ruolo nell’ambito esecutivo, e per quanto visto sono gli oggetti che sono i protagonisti assoluti di quest’ambito. Come spesso accade quando si approccia a Java, appena definita una nuova regola, subito si presenta l’eccezione (che se vogliamo dovrebbe confermarla!). Puntiamo infatti l’attenzione sulla classe Principale. Essa è invece una classe che esegue del codice contenuto all’interno dell’unico metodo main, che per quanto detto, è assunto per default come punto di partenza di un’applicazione Java. In qualche modo i creatori di Java, dovevano stabilire un modo per far partire il runtime di un programma. La scelta è stata fatta in base ad una questione pratica: un’applicazione scritta in C o C++, ha come punto di partenza per default un programma chiamante che si chiama proprio main. In Java i programmi chiamanti non esistono, ma esistono i metodi, ed in particolare i metodi statici, ovvero, dichiarati con un modificatore static. Questo modificatore molto potente sarà trattato in dettaglio nei prossimi moduli. Per ora limitiamoci a sapere che un membro dichiarato statico, appartiene alla classe, e tutti gli oggetti istanziati da essa condivideranno gli stessi membri. Giacché la classe Principale contiene un metodo, può eseguire del codice.

E’ bene che il lettore eviti di utilizzare il modificatore static nei primi tempi ed aspetti che "i tempi maturino", per non buttare via tempo prezioso. L’accenno fatto ad un argomento complesso come static, ha solamente lo scopo di chiarire un punto oscuro del nostro discorso.

Elenco delle pagine di "Il linguaggio Java: lez.3"

 

Introduzione al Modulo 3 - Pagina 1
Unità didattica 2.1) - Pagina 2
Unità didattica 2.2) - Pagina 3
Unità didattica 2.3) - Pagina 4
Unità didattica 2.4) - Pagina 5
Unità didattica 2.5) - Pagina 6
Unità didattica 2.6) - Pagina 7

 

Pagina :
1 | 2 | 3 | 4

Restyling e Aggiornamenti della sezione manuali e guide a cura di: Fabrizio Miceli

Trucchi PC e Guide
Tips su sistemi operativi, registro di configurazione, sicurezza, internet, navigazione, word ed excel.
 
Guide e sulla configurazione, installazione ed utilizzo di, periferiche, sistemi operativi ecc...

   

Ultime novità! Ultime novità nel portale del tutto gratis e on line
@ calshop.biz ... the only one!


News

Il Forum di calshop

Link in evidenza

"Google Talk", la nuova chat che comunica senza tastiera
La nuova sfida di Google si chiama "Google Talk" un nuovissimo sistema che consentirà agli utenti di chattare con una serie di strumenti che vanno al di là della semplice tastiera. Particolarmente sviluppato sarà il supporto della voce per parlare con gli altri utenti collegati, grazie a  microfono e cuffie. Sia Microsoft che Yahoo offrono il supporto per la voce.

News in pillole:  • Maradona e Pelè • Il pericolo viene dalla posta • Chi sale e chi scende • Immagini in ordine • I tesori nascosti di Ebay • I più cliccati di agosto!  [[[ Virus Zotob: scatta l'allarme rosso ]]]

Installa Yahoo! Messenger with Voice:

Giochi Gratis | Software Gratis  |

Ultimi Manuali on line
Le chicche di calshop! Wake on lan
Le chicche di calshop! NET SEND
Le chicche di calshop! Mandaci il tuo manuale

In Evidenza

 

 
.

Copyright  © 1998-2005 Calshop.biz. Ideazione, Progettazione e Realizzazione a cura di Luigi Palamara e Bruna Italia Massara Contatti

Il Network: • NewsLab • Reggio Calabria • Area Grecanica • Roccaforte del Greco • Italia Umts • Tutto Gratis • Dune Buggy



Le chicche di calshop! Tutta la posta di Gmail sul PC. Il servizio webmail di Google può essere gestito anche con Outlook Express. Ecco le giuste Impostazioni.