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 :

utilisation se static et public dans une méthode


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 60
    Points : 32
    Points
    32
    Par défaut utilisation se static et public dans une méthode
    Bonjour,

    J'ai écrit une interface graphique dans laquelle je souhaite utiliser une méthode. Le mot clé static (ainsi que public (je n'en ai pas besoin)) pose un problème. Quand je met le mot clé static, le compilateur dit :
    Syntax error on token(s), misplaced construct(s). Malheureusement, j'ai besoin de ce mot clé vu que, lors de l'utilisation de la méthode, il me dit également d'utiliser static...
    J'ai donc cherché sans mon livre ce que veut dire static : indique que la méthode est une méthode de classe. Mais je ne comprend pas ceci, pouvez-vous m'aider svp?

    pour mieux que vous voyez comment se placent les erreurs de la classe Chemin, je joins ci-dessous les screens : avec le mot clé static, et sans.

    Nom : Capture d’écran 2020-03-15 à 14.23.00.png
Affichages : 608
Taille : 72,5 KoNom : Capture d’écran 2020-03-15 à 14.23.22.png
Affichages : 406
Taille : 64,6 Ko

    voici Maintenant mon code.

    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    package ch.mathias.truelle;
     
    public class Chemin {
     
    	public static int lequelSeraPris = 0;
     
    	public static String [] prochaine;
    	public static String [] favoriti;
     
    	favoriti = new String [] {"comment m'appelle-on?"};
     
    	prochaine = new String [] {"Nooon. regarde. M.A.T.H.I.A.S!"};
     
     
     
    	static void rep() { // méthode qui bloque
     
    		TruelleGame.lab.setText(prochaine[lequelSeraPris]);
    		lequelSeraPris++;
     
    	}
    	static void quest() { // et celle-ci également
    	TruelleGame.lab.setText(favoriti[lequelSeraPris]);
     
     
    	}
    }
     
     
    package ch.mathias.truelle;
     
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.BorderLayout;
    import java.awt.event.*;
    import javax.swing.*;
     
    public class TruelleGame {
     
    	public static JLabel lab = new JLabel();
     
    	public static void main(String[] args) {
     
    		JButton btnOui = new JButton("Oui");
    		JButton btnNon = new JButton("Non");
    		JButton btnOk = new JButton("Ok");
     
    		JTextField enter = new JTextField();
     
    		JPanel starter = new JPanel();
    		JPanel questions = new JPanel();
    		JPanel basBtn = new JPanel();
     
    		JFrame frame = new JFrame("Booon.");
    		frame.setVisible(true);
    		frame.setLocationRelativeTo(null);
    		frame.setSize(200, 70);
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.add(starter);
     
     
    		JButton depart = new JButton("C'est parti, cliquez");
    		depart.setBackground(Color.red);
    		depart.setVisible(true);
     
    		starter.add(depart, BorderLayout.CENTER);
     
    		basBtn.add(btnOui);
    		basBtn.add(btnNon);
    		basBtn.add(btnOk);
    		btnOui.setVisible(false);
    		btnNon.setVisible(false);
    		lab.setVisible(true);
    		enter.setVisible(true);
     
    		questions.add(basBtn, BorderLayout.SOUTH);
    		questions.add(enter, BorderLayout.CENTER);
    		questions.add(lab, BorderLayout.NORTH);
     
    		enter.setPreferredSize(new Dimension (100,20));
     
    		depart.addActionListener(new ActionListener() {
     
    			@Override
    			public void actionPerformed(ActionEvent e) {
     
    				frame.setTitle("Vous avez 10 secondes pour répondre.");
    				frame.setSize(400,200);
    				frame.add(questions);
    				questions.setVisible(true);
     
    				starter.setVisible(false);
    				Chemin.quest();
    			}
    		});
     
    	}
     
    }
    Comme je ne savais pas si le problème était lié à la méthode elle-même, ou au reste du code, j'ai créé un projet avec méthode pour "m'entraîner".
    Le plus bizarre, c'est que ça fonctionne... alors même que j'utilise le mot clé static!
    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
    package ch.mathias.elephant;
     
    public class LAmethodeDell {
     
    	static int result;
     
    	static void mesure(int corps, int queue) {
     
    		result = corps + queue;
    		System.out.println("la longeur de l'éléfant est de : "+ result + " mètres.");
     
    	}
     
    }
    package ch.mathias.elephant;
     
    import java.util.Scanner;
     
    public class Suspens {
     
    	public static void main(String[] args) {
     
    		int corps = 0;
    		int queue = 0;
     
    		Scanner sc = new Scanner(System.in);
     
    		System.out.println("pour connaître la longueur d'un éléphant, indiquez d'abord son corps, puis sa queue. (en mètres)");
     
    		corps = sc.nextInt();
    		queue = sc.nextInt();
     
    		LAmethodeDell.mesure(corps, queue);
     
    	}
     
    }

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 60
    Points : 32
    Points
    32
    Par défaut
    rectification :
    je viens d'essayer sans paramètre, et j'ai faux. (avec/sans static et public)
    Je suis complètement perdu, car mon livre donne un exemple très clair, que je n'arrive pas à reproduire

    EDIT : ça marche finalement xD ce qui veut dire que le problème vient du reste du code non?

    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
    package ch.mathias.simple;
     
    public class SimpleMethod {
     
    	void simplet() {
     
    		System.out.println(1 + 2);
     
    	}
     
    }
    package ch.mathias.simple;
     
    public class Exect {
     
    	public static void main (String []args) {
     
    		SimpleMethod.simple();
    	}
    }

  3. #3
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Salut,
    Tu peux voir ici comment utiliser les blocs d'initialisation statiques : https://java.developpez.com/faq/java...mot-cle-static

    Dans Chemin, les initialisations doivent prendre place dans un bloc défini par des accolades, et qualifié de "static" si utilisé dans ce contexte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    static {
        favoriti = new String [] {"comment m'appelle-on?"};
     
        prochaine = new String [] {"Nooon. regarde. M.A.T.H.I.A.S!"};
    }
    Ainsi ce code sera exécuté au démarrage de l'application (car static).

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 60
    Points : 32
    Points
    32
    Par défaut
    Salut, merci beaucoup.

    J'ai appris une chose intéressante, et je pense avoir quasiment entièrement compris le sens de ce mot !
    Mon code fonctionne à merveille

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 15/01/2016, 10h18
  2. Utiliser propriété de mon objet dans une méthode callback ?
    Par StringBuilder dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/11/2014, 10h08
  3. 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
  4. Ouvrir URL dans une méthode static
    Par NutellaPiou dans le forum Applets
    Réponses: 2
    Dernier message: 18/03/2009, 10h31
  5. Réponses: 2
    Dernier message: 18/12/2008, 14h15

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