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

Eclipse Java Discussion :

[débutant] Static références et non-static références ?


Sujet :

Eclipse Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2
    Par défaut [débutant] Static références et non-static références ?
    Salut à tous,
    Cette année on apprend à programmer en Java dans mon école, et je dois rendre un DM pour avant hier (lol). J'ai un ENNORME problème la en tentant de faire un truc assez propre.

    Je veux déclarer une classe similitude pour y mettre une fonction similitude appelé avec quelques arguments. Sauf que éclipse me dit
    Cannot make a static-références to the non-static methode([...])
    Voici mon code :
    classe essais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	Point[] t1;
    	Point[] t2;
    	int n;
    	Graphics g;
    	Graphics h1;
     
    	int angle;	//A partir de la, déclaration des valeurs for la similutude
    	Point vect;
    	Point centre;
    	Point rapport;
    	Point origine;
    similitude.similitude(n, angle, rapport, vect, centre, t1, t2);
    et ma classe similitude :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    public class similitude {
    	public Point[] similitude(int n2, int angle2, Point rapport2, Point vect2, Point centre2, Point[] polygone1, Point[] polygone2){
    		for(int i=0;i<n2;i++){
    		 int xp4 = (int)((rapport2.x)*(Math.cos(angle2)*(polygone1[i].x-centre2.x)+Math.sin(angle2)*(polygone1[i].y-centre2.y)+vect2.x+centre2.x));
    		 int yp4 = (int)((rapport2.y)*(Math.sin(angle2)*(polygone1[i].x-centre2.x)+Math.cos(angle2)*(polygone1[i].y-centre2.y)+vect2.x+centre2.x));
    			Point pé = new Point(xp4,yp4);
    			polygone2[i]=pé;
    		}
    		return polygone2;
    	}
    }
    D'avance, merci
    Le Sarvok

  2. #2
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 818
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 818
    Par défaut Re: [débutant] Static références et non-static références ?
    Salut

    Citation Envoyé par Sarvok
    Je veux déclarer une classe similitude pour y mettre une fonction similitude appelé avec quelques arguments. Sauf que éclipse me dit
    Cannot make a static-références to the non-static methode([...])
    Traduction en bon français: on ne peut pas faire de référence de manière statique à une méthode qui n'est pas statique.

    Dans ta classe similitude (au passage, il convient de nommer les classes avec une majuscule), tu définit le constructeur similitude. La définition est faite en non-statique.

    Or tu essaies d'y avoir accès depuis ta classe essais (même remarque pour la majuscule) de manière statique, en tapant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    similitude.similitude(....)
    Il serait plus judicieux de créer un objet implémentant la classe similitude:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    similitude tonObjet=new similitude(n, angle, rapport, vect, centre, t1, t2);
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2
    Par défaut
    Merci de ta réponse,
    Je n'ai pas exactement tout saisi donc j'ai peut-être fait une faute.

    Donc au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    similitude.similitude(n, angle, rapport, vect, centre, t1, t2);
    j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //similitude.similitude(n, angle, rapport, vect, centre, t1, t2);
    		similitude maSim = new similitude(n, angle, rapport, vect, centre, t1, t2);
    et cette fois eclipse me sort :
    Similitude cannot be resolved to a type
    Qu'est ce que j'ai fais qui ne marche po ?

    Au fait, c'est quoi une méthode statique et non-statique ?

    PS : J'ai trouvé comment faire : j'ai mis static au lieu de public

  4. #4
    Membre expérimenté Avatar de coco62
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 237
    Par défaut
    Les classes java commence par une majuscules, respecte ce standard et tout ira mieux. (ton code contient similitude et l'erreur Simi..)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 18
    Par défaut
    Les methodes statique (static) ont pour portée tout le programme alors que les méthodes non-statiques s'utilisent dans le bloc même.

  6. #6
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    En fait les méthodes et les arguments static sont partagés par toutes
    les instances d'une même classe, alors que les autres sont propres
    à une instance particulière.

    En d'autres terme, si tu as un objet MonObjet avec un argument static monArgumentStatic et un argument non static monArgumentNonStatic
    Si dans ton code tu utilises deux objets de type MonObjet :

    monObjet1 et monObjet2 partagent la même donnée monArgumentStatic et ont chacun une donnée pour monArgumentNonStatic.

Discussions similaires

  1. Utiliser une méthode non-static dans une méthode static
    Par mcfly37 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 18/08/2010, 11h41
  2. Réponses: 1
    Dernier message: 24/04/2010, 10h32
  3. methode static et methode non-static
    Par Javamar dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 04/03/2009, 16h41
  4. [CLASSES] Attributs non-static apparemment considérés comme static ?
    Par Lideln dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 02/07/2006, 20h36
  5. [debutant] non static variable
    Par Battosaiii dans le forum Langage
    Réponses: 1
    Dernier message: 10/12/2005, 14h39

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