Profete162 Posté(e) 28 septembre 2009 Share Posté(e) 28 septembre 2009 (modifié) 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... Modifié 28 septembre 2009 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
VinS Posté(e) 28 septembre 2009 Share Posté(e) 28 septembre 2009 public static final String TAG = "Class DiceSet"; // En début de classe Log.d(TAG, "Appliquer Chiffre : " + monString); // N'importe ou dans le code ou alors dans ta fonction débug J'utilise ca pour debug, ca peut t'aider on sait jamais :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 28 septembre 2009 Auteur Share Posté(e) 28 septembre 2009 (modifié) 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! Modifié 28 septembre 2009 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 28 septembre 2009 Share Posté(e) 28 septembre 2009 declare ta fonction static. là t es obligé de faire : codes c=new codes(); c.mon_début...... avec le static tu feras codes.mondebug (... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
scanab Posté(e) 28 septembre 2009 Share Posté(e) 28 septembre 2009 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: Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
scanab Posté(e) 28 septembre 2009 Share Posté(e) 28 septembre 2009 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. :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 28 septembre 2009 Auteur Share Posté(e) 28 septembre 2009 (modifié) 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... Modifié 28 septembre 2009 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
20Syl Posté(e) 28 septembre 2009 Share Posté(e) 28 septembre 2009 T'a qu'à faire une classe ClasseComportantPleinDeFonctionsReutilisables avec autant de méthode que tu veux. (mais la somme(2,3) c'est peut être pas nécessaire :p ) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 28 septembre 2009 Auteur Share Posté(e) 28 septembre 2009 J'ai réussi grâce à popol et son static que les puristes n'aiment pas ( d'ou le RESOLU ) Par contre 20syl, c'ets bien ta méthode que j'ai essayé avant, mais j'ai du louper un truc... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.