OVH Cloud OVH Cloud

Classe entgièrement ststic

11 réponses
Avatar
Pierre Maurette
Bonjour,

J'ai une classe entièrement static:

public class MyDate {
private static SimpleDateFormat myDateHeureFormat_ =
new SimpleDateFormat("HH'H'mm");

public static void setDateFormat(String fs) {
/* ............. */
}

public static Date getDate(String sDate) throws ParseException {
/* ............. */
}

public static Date getDateNoEx(String sDate) {
/* ............. */
}

public static String getFormattedString(Date heure) {
/* ............. */
}

private static Date convertStoD(String sDate) throws ParseException {
/* ............. */
}

private static Date stringToDate(String sDate) throws ParseException
{
/* ............. */
}
}

Première question: quel nom porte une telle classe ? En français et/ou
en anglais, c'est pour faire des recherches.

J'utilise les méthodes de la classe sans l'instancier, c'est normal. Ce
qui me chagrine un peu, c'est que je peux sans problème écrire:
MyDate md1 = new MyDate();
MyDate md2 = new MyDate();
J'imagine que l'effet est quasi nul, proche de la création d'un alias.
D'où ma seconde question: existe-t-il une façon de déclarer cet aspect
purement statique de la classe, qui ferait qu'elle ne soit pas
instanciable. En faire un singleton ne change rien, puisque par essence
c'est un genre de "zéroton".
C'est surtout par curiosité, je comprends bien que je sodomise un peu
le diptère ...

nota: setDateFormat(String fs) est là à des fins pédagogiques, on peut
l'oublier, il est clair que si je change la chaine de format le coté
static de la classe n'a plus vraiment de sens.

Merci d'avance ...

--
Pierre Maurette

1 réponse

1 2
Avatar
Bruno Jouhier
J'avais lu ça quelque part. Si j'ai besoin de nommer le machin,
j'utiliserai votre suggestion de "classe statique".


Pour info, le langage C#, qui est largement inspiré de Java, a introduit ce
concept récemment (C# 2.0). Il suffit d'appliquer le mot clé "static" à la
déclaration de classe.

Et ils appellent ça "static class".

http://msdn2.microsoft.com/en-us/library/79b3xss3.aspx

Bruno

1 2