mercredi 30 juillet 2008

C# csharp : methodes, proprietes et classes statiques

1 - Généralités

Dans le tutorial sur la création de classes nous avions vu que pour pouvoir utiliser une méthode d'une classe il fallait d'abord créer un objet de cette classe :

tuto csharp methodes proprietes image 1

Message msg = new Message() permet d'instancier un objet de la classe Message. Ensuite seulement nous pouvons appeler la méthode publique Affiche de Message par : msg.Affiche().

La syntaxe dans ce cas est : NomDeLobjet.NomDeLaMéthode ().

Qualifer la méthode Affiche de static va permettre de l'utiliser en dehors de toute création d'objet de la classe Message. La syntaxe devient alors : NomDeLaClasse.NomDeLaMéthode().

tuto csharp methodes proprietes image 2

Dans cet exemple "Hello word" est affiché par un simple Message.Affiche() dans Main.

Voilà pour les généralités. Quelques précisions maintenant :

2 - Les champs statiques

    - Un champ statique existe même si aucun objet de la classe n'a été créé. Ainsi dans l'exemple ci-dessous Main appelle le champs statique msg alors qu'aucun objet Message n'existe :



tuto csharp methodes proprietes image 3

    - Il est accessible avec la syntaxe NomDeLaClasse.NomDuChamp.

    - Il peut être modifié ou utilisé par les méthodes de la ou des classes. Dans l'exemple ci-dessous Message.msg="Coucou" de la méthode Main est valide :

tuto csharp methodes proprietes image 4

3 - Les méthodes statiques

    - Une méthode statique existe en dehors de la création d'un objet de la classe.

    - Elle est appelée par la syntaxe NomDeLaClasse.NomDeLaMéthode() mais ne peut être appelée par NomDeLobjetDeLaClasse.NomDeLaMéthode(). Dans l'exemple ci-dessous :

    - Message UnMessage = new Message();
    UnMessage.Affiche()

    - génére une erreur de compilation :

tuto csharp methodes proprietes image 5

    - Elle n'accède qu'aux champs statiques de sa classe. Le code ci-dessous génére une erreur de compilation :

tuto csharp methodes proprietes image 6

    - Elle ne peut appeler qu'une méthode statique (de sa classe ou d'une autre classe). Elle peut par contre être appelée par une méthode non statique de sa classe.

4 - Les Propriétés statiques

    - Une propriété statique existe en dehors de la création d'un objet de la classe.

    - Elle est appelée par la syntaxe NomDeLaClasse.NomDeLaPropriété mais ne peut être appelée par NomDeLobjetDeLaClasse.NomDeLaPropriété.

    - Elle n'accède qu'aux champs statiques de sa classe. Dans le code ci-dessous PropriétéStatique accède à _propriétéstatique car le champ est qualifié de static :

tuto csharp methodes proprietes image 7

5 - Les classes statiques (nouveauté C# 2)

    - Une classe statique ne peut comporter que des champs et méthodes statiques.

    - Elle ne peut servir de classe de base pour l'héritage (nous aborderons cette notion d'héritage dans un autre tutorial).

    - Enfin elle ne peut être instanciée. Dans le code ci-après Message UnMessage = new Message() génére une erreur de compilation :

tuto csharp methodes proprietes image 8

Aucun commentaire: