static or not static, là est la question
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:
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:
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 ?