Public / Static / Interface etc...

Résolu
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 - 22 févr. 2007 à 13:18
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 - 22 févr. 2007 à 14:20
Salut à tous, voilà je me tente dans un tout autre projet Java, mais je n'arrive pas à comprendre un trux : J4ai créer un fichier de nommé : Personnages.java à l'intérieur s'y trouve des class
j'usque là aucun pb, mon pb c'est que lorsque je veux importer la référence cela se passe bien mais je ne peux accéder aux objets qui sont à l'interieur car il me dit : "... n'est pas public" mais lorsque je place ma class  personnage du package Personnages en public, il me dit "personnage doit être dans un fichier personnage.java" ... Snif, je pense que je m'y prend mal car en .Net je créer une classe contenant des classes et en public cela passe sans ouiné. Que dois-je faire et pourquoi ?


Merci !!!!!!!!!!! beaucoup



Chris...


Web :
Firstruner

11 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
22 févr. 2007 à 13:37
En java, chaque classe doit être définie dans son propre fichier qui doit avoir le même nom que la classe.

Ce qui rend le code plus simple à organiser : on sait que telle classe est dans tel fichier, par contre, c'est sûr que ca fait une prolifération de fichiers !
3
Utilisateur anonyme
22 févr. 2007 à 13:44
Je suis d'accord avec DARKSIDIOUS.
Tu fais comme ça :

/*fichier "Action.java"*/
package Personnages;
interface Action...
/*fin fichier*/

/*fichier "Saluer.java"*/

package Personnages;
class Saluer implements Action...

/*fin fichier*/

...
yeah! vive java
3
Utilisateur anonyme
22 févr. 2007 à 13:28
Fais plutôt un fichier par classe Java. Si tu as plusieurs types de personnages, crée un package Personnages et mets chaque classe modélisant un personnage dans ce package. Tu vois ce que je veux dire?

yeah! vive java
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
22 févr. 2007 à 13:36
Oui je vois bien, mais en l'occurence j'ai un autre problème que voici : j'ai n personnage qui permettent n action c'est actions sont des classes implémentant l'interface action, et le personnage appel une fonction commune Faire() qui elle en fonction de l'objet action sélectionner fait ci ou ça. tu vois ?


Regarde un exemple :


package Personnages;


import java.util.Collections;


/**
 *
 * @author Chris
 */
interface Action {
    public void Faire();
}


class Attend implements Action {
    public void Faire() {
        System.out.println("J'attend");
    }
}


class Saluer implements Action {
    public void Faire() {
        System.out.println("Bonjour !");
    }
}


class DireAuRevoir implements Action {
    public void Faire() {
        System.out.println("Au revoir !");
    }
}

public class Personnage {
    private String pseudo;
    private int vie;
    private Action act;
   
    /** Creates a new instance of Personnages */
    public Personnage(String NomJoueur) {
        this.vie=100;
        this.pseudo = NomJoueur;
        this.act = new Attend();
    }
   
    public void SetAct(Action Act) {
        this.act=Act;
    }
   
    public void Faire() {
        act.Faire();
    }
}



Chris...


Web :
Firstruner
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
22 févr. 2007 à 13:38
Quand je set l'action en interne du fichier java y'a aucun problème, mais dès lors ou je veux le faire à l'extérieur alors là c'est galère pour moi newbie en javatization

Chris...
Web : Firstruner
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
22 févr. 2007 à 13:40
C'est quoi ton problème avec l'interface Action ?

Que tu ne peux pas déclarer les 3 classes concrètes dans le même fichier ? Normal, Java ne le permet pas, il faut les mettre dans 3 fichiers différents (ainsi que l'interface dans un autre fichier).
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
22 févr. 2007 à 13:48
Je peux faire x fichier java avec le même nom de package ??



Chris...


Web :
Firstruner
0
Utilisateur anonyme
22 févr. 2007 à 13:51
OUI!! C'est fait pour ça. Dans mon jeu en 3D, par exemple, j'ai au moins une douzaine de classes dans le package principal. Par contre, crée un répertoire pour chaque package et mets tes fichiers .java dedans. Et compile comme ça:

javac Personnages.Action.java    depuis le répertoire Personnages

yeah! vive java
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
22 févr. 2007 à 13:54
Ok, effectivement maintenant tout s'éclair :)

merci à tous !

Chris...
Web : Firstruner
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
22 févr. 2007 à 14:14
En fait un package, en java, c'est comme un espace de nom en C++ : un endroit où l'on définit la portée d'une classe : toutes les classes d'un même package ont accès directement aux autres classe du package. Par contre, si tu veux accèder à des classes d'un autre package, il faut les importer dans ton code. (mot clé import)
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
22 févr. 2007 à 14:20
Hmmmm, c'est ce que j'ai ajouter dans ma JForm : import Personnages

Chris...
Web : Firstruner
0
Rejoignez-nous