Jump to content

[RESOLU] Je suis presque honteux de poser la question...


Profete162

Recommended Posts

Bonjour à tous,

Je sais que je dois peut-être en énerver plusieurs à toujours poser des questions basiques, mais je préfère être certain de bien faire ce que je veux.

J'aimerais me créer plusieurs fonctions réutilisables dans toutes mes classes et j'aimerais savoir quelle est la méthode la plus propre et simple et la syntaxe exacte pour le faire

Imaginons que je veule coder une fonction mon_debug définit comme suit:

    [url]public void mon_debug(String monstring) 
   { 
       System.out.println("DEBUG LINE \n: "+monstring);
   }[/url]

et plusieurs autres fonctions de ce genre.

J'ai tenté de faire cette classe ou je rajouterais tous mes codes:

package tof.cv.codes;


   public class codes 
   { 

       public void mon_debug(String monstring) 
       { 
           System.out.println("DEBUG LINE \n: "+monstring);
       }
   }

Est-ce que je me plante totalement sur la méthode ou je dois faire une classe par fonctions?

Car cette classe est bien acceptée, mais je ne peux pas ecrire debug("test"); dans mes autres lignes de code, même avec un import approprié!

Vraiment désolé pour la question ridicule, mais sans les bases, je suis un peu perdu...

Edited by Profete162
Link to comment
Share on other sites

Heuu merci, mais la question ne concerne pas du tout le debug... Mais plutôt ou et comment définir la fonction debug("blabla")

J'aurais pu poster mon message avec somme(int a,int b)(return (a+b);) si tu vois mon probleme!

J'aimerais "juste" créer une fonction appelable dans tout mon projet!

Edited by Profete162
Link to comment
Share on other sites

Pouah le static !!!! :mad: :mad:

Tout dépend de ce que tu veux réellement faire. Si tu veux coder "dans les règles de l'art" en Java, bannis donc le mot clé static pour les méthodes (sauf exception, pour le pattern Singleton). En effet, Java est un langage objet et le mot clé static pour une méthodes n'est qu'un subterfuge technique permettant de ne pas trop perdre les développeurs de langages procéduraux.

Dans ton cas, ta classe est bien écrite. Tu as un objet "code" sur lequel tu veux exécuter une méthode "mon_debug(...)".

En Java, tu manipule toujours des objets. Tu doit donc instancier un objet "code"

code monCode = new code();

et y appliquer ta méthode

monCode.mon_debug("toto");

Le static peut paraitre plus simple d'un premier abord, mais si tu développe en objet, tu vas vite te rendre compte que cela pose de sérieux problèmes de concurrence d'accès aux attributs par exemple. De plus, ce n'est tout simplement pas la façon de développer en Java.

Voilà :) maintenant, tu fais ce que tu veux, moi je ne fais que te donner des conseils pour la suite. :rolleyes:

Link to comment
Share on other sites

Un petit conseil supplémentaire. En Java, il existe des conventions de nommages et de syntaxe assez strictes :

- un nom de classe commence toujours par une majuscule

- un nom de variable ou de méthode commence toujours par une minuscule

- pas de _ dans un nom de classe, de variable ou de méthode : si celle-ci est composé de plusieurs mots, on colle les mots et on met une majuscule à chaque nouveau mot.

- quand tu ouvre un bloc, tu met l'accolade ouvrante en fin de ligne déclarant le bloc

Il y en a pleins d'autre, mais je ne vais pas toutes les détaillées...

Ton code ressemblerai à :

package tof.cv.codes;

public class Codes { 
  public void monDebug(String monString)  { 
     System.out.println("DEBUG LINE \n: " + monString);
  }
}

Encore une fois, tu n'est pas obligé de les suivre, mais les conventions sont là pour la simplification de relecture du code d'un développeur à l'autre. :)

Link to comment
Share on other sites

Je voulais simplement me créer plein de fonctions réutilisables dans tout mon code, j'aurais mon_debug("blabla"), somme (2,3), affichespecial("bonjour"), etc...

Je vais donc devoir créer plein de classes différentes alors?

C'est juste ce que je veux faire...

Edited by Profete162
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...