Pages: [1]   Go Down
Print
Author Topic: Chiarimento su " costruttore di una classe "  (Read 1687 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
@@AntonioCT@@
Matricola
*
Offline Offline

Posts: 16



« on: 19-02-2009, 10:41:56 »

Un saluto a tutti, devo svolgere la prova di lab e non mi è chiara una cosa:
come mai quando dichiaro il costruttore di una classe non posso usare il nome della variabile ma uno del tipo _(var)
Mi spiego meglio:
Quote
abstract class A
{
   private int x;
   public A (int _x)
   {
      x=_x;
   }
   public abstract int f (int x);
}
Perchè si mette x=_x ?
Logged
•Black Angel•
Matricola
*
Offline Offline

Posts: 56



« Reply #1 on: 19-02-2009, 10:48:13 »

puoi utilizzare il neme stesso della variabile, ed in quel caso userai il this

Code:
abstract class A
{
    private int x;
    public A(int x)
      {
          this.x=x;
       }
    abtract int f(int x);
}
Logged

Link Immagine

GlI aNgElI vEnGoNo, LaScIaNo Un'ImPrOnTa InDeLeBiLe NeLlA tUa ViTa E nEl TuO .. e VaNnO vIa PeR sEmPrE.. RoSaRiO sEmPrE qUi

♥ NoN e' MaI tR tArDi PeR eSsErE qUeLlO cHe AvReStI vOlUtO ♥
KingDavid
Forumista
***
Offline Offline

Posts: 788


Alla fine [...] tutta la realtà è binaria.


« Reply #2 on: 19-02-2009, 10:50:01 »

Un saluto a tutti, devo svolgere la prova di lab e non mi è chiara una cosa:
come mai quando dichiaro il costruttore di una classe non posso usare il nome della variabile ma uno del tipo _(var)
Mi spiego meglio:
Quote
abstract class A
{
   private int x;
   public A (int _x)
   {
      x=_x;
   }
   public abstract int f (int x);
}
Perchè si mette x=_x ?


Se mettessi x = x
il compilatore farebbe confusione. Per questo motivo si utlizza la parola chiave "this", per riferisi alle variabili dichiarate nella classe.
Logged

Basti pensare che un ipotetico quadrato di specchi, lungo 200 chilometri per ogni lato, potrebbe produrre tutta l'energia necessaria all'intero pianeta.
(Carlo Rubbia)
francesco89b
Apprendista Forumista
**
Offline Offline

Posts: 169



« Reply #3 on: 19-02-2009, 11:12:58 »

o meglio per quanto ne so il compilatore nn farebbe confusione, ma semplicemente assegnerebbe alla variabile x del parametro formale lo stesso valore di se stessa 

col this invece ci si riferisce alla variabile di istanza e quindi si va a copiare il parametro all'interno della variabile di istanza...inutile sono una frana a spiegare XD
Logged

Ogni mia affermazione è sempre da considerarsi con un ampio margine di errore X0
zElOtO
Forumista
***
Offline Offline

Gender: Male
Posts: 845



WWW
« Reply #4 on: 19-02-2009, 11:27:40 »

Nel public della classe viene passata la variabile int x e scrivendo this.x = x; assegni la variabile passata al costruttore public alla variabile dichiarata nel costruttore A. Non so se mi spiego.. 
Logged

I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. Insieme sono una potenza che supera l'immaginazione. (A. Einstein)

Damiano Cancemi
www.damianocancemi.com
www.nerdbren.com
www.nerdbren.com/blog
@@AntonioCT@@
Matricola
*
Offline Offline

Posts: 16



« Reply #5 on: 19-02-2009, 11:47:39 »

Grazie ragazzi  ho capito  pc
Logged
Fr3d3R!K
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.463



« Reply #6 on: 19-02-2009, 15:44:09 »

o meglio per quanto ne so il compilatore nn farebbe confusione, ma semplicemente assegnerebbe alla variabile x del parametro formale lo stesso valore di se stessa 

col this invece ci si riferisce alla variabile di istanza e quindi si va a copiare il parametro all'interno della variabile di istanza...inutile sono una frana a spiegare XD
invece secondo me è la spiegazione migliore che ho visto nel topic. Ma tutte queste domande finora, mi fanno pensare a quante persone (attente) c'erano a lezione [Emoticon] Asd [Emoticon] Rosik Asd
Logged

Search Button, CODE Tag, Google & Italian language are your friends! Use Them!
zElOtO
Forumista
***
Offline Offline

Gender: Male
Posts: 845



WWW
« Reply #7 on: 19-02-2009, 15:51:04 »

 yoh
Logged

I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. Insieme sono una potenza che supera l'immaginazione. (A. Einstein)

Damiano Cancemi
www.damianocancemi.com
www.nerdbren.com
www.nerdbren.com/blog
Pages: [1]   Go Up
Print
Jump to: