Autore Topic: variabile protected, problemi di visibilità ..  (Letto 820 volte)

Offline aeroxr1

  • Utente junior
  • **
  • Post: 76
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy nexus
  • Sistema operativo:
    window 8.1
variabile protected, problemi di visibilità ..
« il: 05 Settembre 2014, 13:49:56 CEST »
0
CIao,
ho due classi in due file differenti entrambi nella stesso package, ho dichiarato nella classe A la variabile protected world.
Mi aspettavo dalla classe B di poterla riferire senza problemi e invece mi dice che non riesce a trovarla.

Ho modificato la dichiarazione in : protected static world
e ora la classe B riesce a vederla.

Come mai ho dovuto aggiungere static ?  o_O

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:variabile protected, problemi di visibilità ..
« Risposta #1 il: 05 Settembre 2014, 14:07:20 CEST »
0
Se non era static per accedere dovevi per forza passare per un oggetto, in questo modo passi per una proprietà statica,  creata in modo automatico prima di eseguire qualsiasi codice nel programma.

Inviato dal mio Nexus 5 utilizzando Tapatalk
« Ultima modifica: 05 Settembre 2014, 14:09:13 CEST da iceweasel »
adb logcat | tee /tmp/logcat | grep TAG

Offline aeroxr1

  • Utente junior
  • **
  • Post: 76
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy nexus
  • Sistema operativo:
    window 8.1
Re:variabile protected, problemi di visibilità ..
« Risposta #2 il: 05 Settembre 2014, 16:01:07 CEST »
0
Codice (Java): [Seleziona]
public class MainActivity extends Activity {
       
        private GLSurfaceView mGLView;
        protected static World world; //mondo dell'animazione
        protected static AnimatedGroup modello; //gruppo di oggetti del modello

e nell'altra classe sempre stesso package :

Codice (Java): [Seleziona]
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
                // TODO Auto-generated method stub
                Logger.log("onSurfaceCreated");
                TextureManager.getInstance().flush();
                Resources res = getResources();
                Texture texture = new Texture(res.openRawResource(R.raw.vincent_texture));
                texture.keepPixelData(true);
                TextureManager.getInstance().addTexture("ninja", texture);
               
                for (Animated3D a : modello)
            a.setTexture("ninja");
        }

modello me lo segnala come errore... boh... eppure è static :(


Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:variabile protected, problemi di visibilità ..
« Risposta #3 il: 05 Settembre 2014, 16:19:47 CEST »
+1
Magari dico una cavolata perchè ho capito male la domanda, ma la tua variabile protected non è globale, per cui devi comunque passare dalla classe. Se è variabile statica puoi scrivere MainActivity.modello, se non è statica ti serve l'istanza della classe (tipo mActivity.modello) .

NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline aeroxr1

  • Utente junior
  • **
  • Post: 76
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy nexus
  • Sistema operativo:
    window 8.1
Re:variabile protected, problemi di visibilità ..
« Risposta #4 il: 05 Settembre 2014, 16:31:33 CEST »
0
se sono nello stesso package occorre comunque specificare la classe ?

Fino ad ora ho sempre pensato di no O.o

edit : che stupido è veramente così -.-" Non mi ricordavo che funzionava in quel modo...
« Ultima modifica: 05 Settembre 2014, 16:34:03 CEST da aeroxr1 »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:variabile protected, problemi di visibilità ..
« Risposta #5 il: 05 Settembre 2014, 17:13:12 CEST »
+1
se sono nello stesso package occorre comunque specificare la classe ?

Non ti serve la classe, se la usi dentro la classe o una sua derivata. E' una questione di "scope".
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline aeroxr1

  • Utente junior
  • **
  • Post: 76
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy nexus
  • Sistema operativo:
    window 8.1
Re:variabile protected, problemi di visibilità ..
« Risposta #6 il: 05 Settembre 2014, 20:16:05 CEST »
0
Erano due anni che non toccavo java e per di più due anni fa lo avevo usato solo a livello basilare, molte di queste cose mi sono sfuggite del tutto -.-"