IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Qu'est-ce que le $ qui fait que me classe s'appelle Personnage$Guerrier ?


Sujet :

avec Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut Qu'est-ce que le $ qui fait que me classe s'appelle Personnage$Guerrier ?
    voilà mon classe:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    public abstract class Personnage 
    {
        /* Méthode de déplacement de personnage */
    	public void seDeplacer()
    	{
    		System.out.println("Je me déplace à pied.");
    	}
     
    	/* Méthode que les combattants utilisent */
    	public  void combattre()
    	{
    		System.out.println("Je ne combat pas!");
    	}
     
     
    	public class Guerrier extends Personnage 
    	{
    	 public void combattre() 
    	 {
    	  System.out.println("Fusil, pistolet, couteau ! Tout ce que tu,! veux !");
    	 }
    	 }
     
    	public class Medecin extends Personnage
    	{
    		public void combattre()
    		{
    			System.out.println("Vive le scalpel!");
    		}
    		public void soigner()
    		{
    			System.out.println("Je soigne les blessures.");
    		}
    	}
     
    	public class Civil extends Personnage
    	{
    		public void combattre()
    		{
    			System.out.println("Je ne combat pas!");
    		}
     
    	}
     
    	public class Chirurgien extends Personnage
    	{
     
    		public void soigner()
    		{
    			System.out.println("Je fais des opérations.");
    		}
    	}
     
    	public class Sniper extends Personnage
    	{
    		public void combattre()
    		{
    			System.out.println("Je me sers de mon fusil à lunette!");
    		}
     
    	}
     
    	public static void main(String[]args)
    	{
     
    		Personnage per = new Personnage()
    		 {
    		 };
    		 Personnage[] tPers = { per.new Guerrier(), per.new Chirurgien(), per.new Civil(), per.new Sniper(), per.new Medecin() };
     
    		 for(Personnage p:tPers)
    		 {
    			System.out.println("\nInstance de " + p.getClass().getName());
     
    			System.out.println("******************************************************");
    			//p.combattre();
    			p.combattre();
    			p.seDeplacer();
    		}		 	
    }
    	}
    dans mon output:

    chaque fois avec le Personnage j'ai un $

    "Instance de Personnage$Guerrier"

    pouvez vous me dire pourquoi svp

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    C'est la manière de nommer les classes imbriquées dans d'autres.

    Si le nom qualifié de la classe était juste :
    - "Guerrier," alors il n'y aurait aucun moyen de distinguer la classe Guerrier imbriquée à Personnage, d'une autre classe Guerrier qui, elle, ne serait pas imbriquée à une autre classe.
    - "Personnage.Guerrier," alors il n'y aurait aucun moyen de la distinguer d'une autre classe Guerrier qui ferait partie d'un package nommé Personnage avec la directive package Personnage.

    Enfin, ce qu'il faut retenir, c'est que le $ c'est pour les classes imbriquées.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    ok,merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] RAPPEL: C'est VOUS qui bénéficiez du fait que vous mentionnez votre version d'Excel.
    Par Pierre Fauconnier dans le forum Excel
    Réponses: 1
    Dernier message: 13/01/2019, 21h15
  2. Réponses: 1
    Dernier message: 09/11/2014, 11h29
  3. [Drupal] qu'est-ce qui fait que développer avec drupal est chaud même pour un dev senior
    Par mapmip dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 23/07/2014, 11h43
  4. c'est quoi la difference entre "tant que" et "repeter tant que"
    Par nitch01 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 04/11/2009, 09h45
  5. Qu'est-ce que c'est que Nessus, ça fait quoi exactement ?
    Par PeterT dans le forum Développement
    Réponses: 3
    Dernier message: 24/07/2002, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo