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

Langage Java Discussion :

[Language][Package]Probleme de portée d'un Objet


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 31
    Points : 19
    Points
    19
    Par défaut [Language][Package]Probleme de portée d'un Objet
    bonjour,
    ( je suis sous eclipse )
    j'ai un probleme de porté d'objet, en fait
    voici la classe 1
    ( juste des morceaux de code interessant pour regler mon pb )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    package com.elgrapheur.graph;
    interface Graphable 
    {
     
    	public void addFromGraph();
    	etc....
    }
    ensuite une deuxieme classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    package com.elgrapheur.graph;
    import java.lang.Math;
    import java.awt.*;
    import java.awt.geom.*;
    import javax.swing.*;
     
    class Histogramme extends JPanel implements Graphable
    {
    etc.....
    et enfin la derniere classe qui sera composée de qqch de "Graphable "
    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
     
    package com.elgrapheur.gui;
    import com.elgrapheur.graph.*;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
     
    class mainWindow
    {
     
    	public static void main(String [] args)
    	{
    		Graphable toto=new Histogramme(400,500,10,23);
    		JFrame fen=new JFrame("test");
    		fen.getConte etc....
    	}
    }
    et donc toto ne peut pas etre créée parce-que Histogramme est inaccessible, mais que je mette la classe Histogramme en public ou pas eh beh il reste tout de meme inaccessible...
    comment je pourrais faire pour y acceder ?

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 50
    Points : 48
    Points
    48
    Par défaut
    regarde tes package :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    package com.elgrapheur.graph;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    package com.elgrapheur.graph;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    package com.elgrapheur.gui;
    il faut donc faire


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Graphable toto=new com.elgrapheur.graph.Histogramme(400,500,10,23);

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 28
    Points : 31
    Points
    31
    Par défaut
    je doute que si tu mets la classe HIsto en public, et que tu recompiles, elle soit inaccessible !!
    par contre Graphable n'étant pas public elle est innacessible.

    IL te faut donc placer Histo et Graphable en public !!

    Cordialement

  4. #4
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Si tu ne precise pas public devant les mots cles interface ou class, la portee est "package protected". Cest a dire visible dans le package uniquement.

    Ton main n'est pas dans le meme package alors il ne peut pas voir tes deux autres classes ..

    Il te faut mettre l'interface et la classe en public.

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 31
    Points : 19
    Points
    19
    Par défaut
    mabs: new com.elgrapheur.graph.Histogramme(400,500,10,23);
    ça change quoi vu que j'ai mis import com.elgrapheur.graph.*;

    muaddob :
    je ne peux en fait meme pas les mettres en public ( seulement une /2 ), si je le fais eclipse me souligne le nom de la classe et me dit
    pour l'interface Graphable :
    the public type Graphable must be defined in its own file
    et dans la classe Histogramme il me surligne implements "Graphable" et me dis :
    Graphable cannot be resolved or is not a valid superinterface
    et si je mets public uniquement Histogramme ça ne change rien il ne me met pas de faute mais souligne
    l'instanciation de Histogramme dans la classe mainWindow

    :

    Edit je n'avais pas lu le message de Bulbo mais je te reponds la meme chose que a muaddob ( Cad eclipse me trouve des fautes )

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 28
    Points : 31
    Points
    31
    Par défaut
    c'est pas faut d'éclipse, tu doit définir l'interface Graphable dans une fichier Graphable.java !! sinon il doit resté package !

    Donc : nomme correctement ton fichier !

    Cordialement

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 31
    Points : 19
    Points
    19
    Par défaut
    a oui, merci c'etais ça

    ps:
    c'est pas faut d'éclipse, tu doit définir l'interface Graphable dans une fichier Graphable.java !! sinon il doit resté package !
    ce que tu as compris n'est pas ce que j'ai voulus dire
    je citais juste eclipse pour que vous ayez clefs en main pour mieux me repondre

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

Discussions similaires

  1. Probleme de port !
    Par _matt_44 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 10/06/2005, 15h26
  2. [Classpath][packages] problème de lancement de l'appli
    Par gogozep001 dans le forum Général Java
    Réponses: 11
    Dernier message: 19/05/2005, 23h35
  3. Packages - problème de dependances
    Par Invité dans le forum Administration système
    Réponses: 3
    Dernier message: 14/06/2004, 10h46
  4. [debutant]servlet probleme de port
    Par noOneIsInnocent dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 04/09/2003, 16h33
  5. quel est le Meilleur language pour piloter le port serie ?
    Par flyfab dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 21/07/2003, 10h03

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