Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 Cultura Informatica
 Corso di java
 Basi
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

genius
dott. ing. cav. ...FN

Genio


Regione: Puglia
Prov.: Bari
Città: Molfetta - Caput Mundi


Inserito il - 18/06/2007 : 11:24:49  Mostra Profilo  Visita l'Homepage di genius  Clicca per vedere l'indirizzo MSN di genius  Invia a genius un messaggio Yahoo! Invia a genius un Messaggio Privato  Rispondi Quotando
Bene come si evince dal nome del topic, qui cercherò di spiegare le basi del linguaggio, man mano ke mi presenterete i vostri dubbi (spero però ke non contiate esclusivamente su di me, cioè almeno studiatevi qualcosa prima)



  1. Parole chiave this:
    la parola chiave this rappresenta il riferimento all'oggetto corrente di una classe. Può essere usato per indicare le proprietà dell'oggetto (this.nomeProprieta), i metodi dell'oggetto (this.nomeMetodo()), o, in un costruttore dell'oggetto per riferirsi ad un altro costruttore del medesimo oggetto. Usiamo la seguente classe come esempio:
    public class Esempio{
        private static int numeroIstanze = 0;
        private int istanzaCorrente;
        protected String nomeEsempio;
    
        public Esempio(){
    	istanzaCorrente = ++numeroInstanze; // il primo oggetto avrà occorrenzaCorrente = 1
    	nomeEsempio = null;
        }
    
        public Esempio(String nomeEsempio){
    	this(); // richiamo il costruttore di default
    	this.nomeEsempio = nomeEsempio;
        }
    
        public getNumeroIstanza(){
    	return istanzaCorrente;
        }
    
        public static getNumeroIstanze(){
    	System.out.println(this.istanzaCorrente); // Errore <- non si può far riferimento a un metodo/attributo non statico in un contesto statico
    	return numeroInstanze; // giusto! perchè numeroOccorrenze è static
        }
    }

    Come si può leggere, nel costruttore Esempio(String nomeEsempio) stiamo usando 2 volte la parola chiave this. La prima volta è per richiamare un altro costruttore (in questo caso quello di default), la seconda volta per "disambiguare" il nome della variabile, e distinguere tra attributo dell'oggetto e parametro del metodo.

  2. Modificatore static:
    Il modificatore static è usato per definire attributi e metodi di classe. In un linguaggio ad oggetti esiste una gerarchia di "entità". Il livello + basso è l'oggetto che definisce la singola istanza di una classe. Salendo nella gerarchia troviamo le classi di oggetti, che specificano le proprietà comuni a tutti gli oggetti. Ogni classe però è un'instanza di un livello superiore, precisamente, è un'istanza di una Meta-classe. Le meta-classi definiscono gli attributi e i metodi di una classe. Con la parola static si definisce proprio questo tipo di attributi/metodi.
    Facendo riferimento alla classe Esempio, l'attributo numeroIstanze è un attributo di classe. Questo significa che è comune a tutte le istanze di questa classe. Dato che è in comune viene inizializzato la prima volta che viene creato un oggetto di quella classe (in realtà subito prima che questo venga creato). Inoltre ogni volta che viene creato un oggetto questo valore viene incrementato di 1, quindi possiamo sapere in ogni istante quante istanze di classe Esempio sono state create.
    Una cosa importante da sapere è che all'interno di un ambiente statico come può essere un metodo statico, non è possibile fare uso di attributi e metodi non statici. Il motivo è semplice: i metodi e gli attributi statici fanno parte di un'entità ad un livello superiore rispetto agli oggetti. Un altro motivo + "pratico" è ke i metodi e gli attributi statici "esistono" e possono essere usati anke senza che "esistano" istanze di quella classe.


"...e se non hai morale
e se non hai passione
se nessun dubbio ti assale
perché la sola ragione che ti interessa avere
è una ragione sociale
soprattutto se hai qualche dannata guerra da fare
non farla nel mio nome
non farla nel mio nome
che non hai mai domandato la mia autorizzazione
se ti difenderai non farlo nel mio nome
che non hai mai domandato la mia opinione..."

Un blog farlocco

Antarctica
Utente medio

2053



Inserito il - 18/06/2007 : 16:50:37  Mostra Profilo  Visita l'Homepage di Antarctica Invia a Antarctica un Messaggio Privato  Rispondi Quotando
grazie mille genius, sei stato molto chiaro
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,27 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000