Java imbriquée à l'intérieur de la classe d'accès extérieur de variables de classe
Est-il possible pour le imbriquée à l'intérieur des classes ABar et BBar à l'accès principal de la classe des variables? Par exemple:
public class Foo {
public ABar abar = new ABar();
public BBar bbar = new BBar();
public int someCounter = 0;
public class ABar {
public int i = 0;
public void someMethod(){
i++;
someCounter++;
}
}
public class BBar {
public void anotherMethod(){
bbar.someMethod();
someCounter++;
}
}
}
//then called using: //
Foo myFoo = new Foo();
myFoo.bbar.anotherMethod();
Modifier
Semble que le code que j'ai tapé aurait fonctionné si j'avais essayé les premiers, a été d'essayer d'obtenir de l'aide sans être trop spécifique. Le code je me suis fait avoir des ennuis avec
Échoue en raison de l'erreur "ne peut pas faire référence statique pour les non-champ statique stage"
public class Engine {
public Stage stage = new Stage();
//...
public class Renderer implements GLSurfaceView.Renderer {
//...
@Override
public void onDrawFrame(GL10 gl) {
stage.alpha++;
}
}
public class Stage extends MovieClip {
public float alpha = 0f;
}
Avez-vous l'essayer?
docs.oracle.com/javase/tutorial/java/javaOO/nested.html
Je n'ai pas essayé exactement comme tapé, parce que mon projet est android - même logique, ne fonctionne pas (pas de enfermant instance de Foo)
Vraiment? Il vous a perturbé les essais? Ce n'est pas constructif question.
semble plus difficile de poster ici, que pour le tester
docs.oracle.com/javase/tutorial/java/javaOO/nested.html
Je n'ai pas essayé exactement comme tapé, parce que mon projet est android - même logique, ne fonctionne pas (pas de enfermant instance de Foo)
Foo.this.i++;
Vraiment? Il vous a perturbé les essais? Ce n'est pas constructif question.
semble plus difficile de poster ici, que pour le tester
OriginalL'auteur TerryProbert | 2012-08-20
Vous devez vous connecter pour publier un commentaire.
Dans votre code, oui, c'est possible.
Voir: Classes Imbriquées
OriginalL'auteur davidmontoyago
Si votre intérieure s'étend à l'extérieur de la classe, alors il aura accès à l'extérieur de la classe public et des membres protégés. J'ai juste fatigué et il a travaillé. La construction est un peu bizarre, parce qu'il implique une sorte de boucle infinie dans la définition de la classe, mais il semble faire le travail.
OriginalL'auteur user3124161