Bonjour,

me voila confronté à une petite subtilité de langage que je ne comprends pas:
voici l'architecture de l'application que je développe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class maClasseApplication
{
  /.../ Déclaration de membres en tout genre
  private CTableDonnees m_tableDonnees;
  /.../

  public static void main(String[] args)
  {
     /.../
  }

  /.../ Reste de l application avec classes en tout genre
  private class maClasseA
  {...}

  private classe maClasseB
  etc...
}
La classe m_tableDonnees, développée à l'extérieur de la classe de l'application, s'occupe de la gestion des données de l'application, et fournit des méthodes de traitement de celles-ci.

Lorsque je fais référence à m_tableDonnees depuis maClasseA pour effectuer une opération sur les données, je n'ai pas de réprimande. Par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
  private class maClasseA
  {
    m_tableDonnees.ajouteOperation(); // OK
  }
Par contre, si j'appelle cette même méthode depuis la classe main, on me signale que:
"Il est impossible d'établir une référence statique au champ non statique m_tableDonnees"

Pourquoi ce qui est permis dans maClasseA, n'est pas faisable dans main ?