Structure d'un programme [Java] - Java - Programmation
Marsh Posté le 03-05-2004 à 12:48:10
1) Tu fais comme tu veux, c'est pas important.
Le truc, c'est que à l'exécution, faut connaitre le point d'entrée static. Donc tu peux nommer le fichier avec le main d'un nom bien explicite, le nom de ton programme par exemple.
2) Le JAVA c'est beau et propre. Avec un bon éditeur, un petit changement d'habitude et un peu de vaseline, c'est le bonheur.
3) Si tu mets rien : visibilité de package
Marsh Posté le 03-05-2004 à 13:37:02
pour le 2ème point :
edit : le point d'interrogation est dû à un plugin.
Marsh Posté le 03-05-2004 à 14:00:24
pour le point 2, la javadoc est aussi la pour ca ...
Marsh Posté le 03-05-2004 à 14:17:41
benou a écrit : pour le point 2, la javadoc est aussi la pour ca ... |
la javadoc c'est pour les faibles.
Marsh Posté le 03-05-2004 à 14:41:31
nraynaud a écrit : la javadoc c'est pour les faibles. |
je vois pas pourquoi...
Marsh Posté le 03-05-2004 à 14:42:54
myst78 a écrit : je vois pas pourquoi... |
cqfd
Marsh Posté le 03-05-2004 à 15:17:16
ReplyMarsh Posté le 03-05-2004 à 16:52:28
Giz a écrit : |
Avec ça tu peux avoir plusieurs points d'entrées dans ton programme !!!
Pour tester une classe toute seule c'est très bien : tu lui colles une méthode main (que tu peux ensuite enlever) et roule.
Sinon tu peux avoir un programme avec deux points d'entrées : un pour fonctionner en mode ligne de commande et l'autre pour avoir une interface graphique. Par exemple je l'ai fait pour un programme de transformation XSL. Le mode ligne de commande fait de la transformation en batch sur les XML d'un répertoire et le mode graphique permet de lancer une seule transformation et de voir le résultat de suite.
Cependant on peut toujours se ramener à un seul point d'entrée
Marsh Posté le 03-05-2004 à 17:04:47
pascal34 a écrit : |
ouaaais comme en 40 !
Marsh Posté le 03-05-2004 à 17:11:24
Bon dites moi, j'ai besoin de pointeurs de fonction, ca existe ca en Java
Marsh Posté le 03-05-2004 à 17:17:30
100balles que t'en as pas besoin
Marsh Posté le 03-05-2004 à 17:17:35
ReplyMarsh Posté le 03-05-2004 à 17:23:45
the real moins moins a écrit : (sinon oui ça existe) |
bon admettons que je veux declarer un ptr de fonction ayant pour prototype :
int[] function (int, int, int[])
en C ca serait :
int * (*function) (int, int, int*)...et en Java c koi ?
Sinon, j'aimerais utilise un arbre binaire non equilibre (c'est pour represente un graphe), c koi le type de donne ?
est-ce TreeSet (http://java.sun.com/j2se/1.4.2/docs/api/java/util/TreeSet.html)
EDIT : non en fait ca serait plutot un arbre n-aire que je voudrais
Merci
Marsh Posté le 03-05-2004 à 17:29:00
Giz a écrit : bon admettons que je veux declarer un ptr de fonction ayant pour prototype : |
un peu de programmation orientée objet peut etre?
Marsh Posté le 03-05-2004 à 17:32:21
the real moins moins a écrit : un peu de programmation orientée objet peut etre? |
ben koi, dans ma classe j'ai un ptr de fonction a initialisee dans le constructeur, pas le droit ?
Marsh Posté le 03-05-2004 à 17:37:18
DarkLord a écrit : déjà parler de fonction ca n'a rien de vraiment objet. |
bon methode si tu preferes, ... ca existe dans les classes ca non
Marsh Posté le 03-05-2004 à 17:49:43
Giz a écrit : bon methode si tu preferes, ... ca existe dans les classes ca non |
oui, biensur, d'ailleur "méthode" ça veut dire instance sur laquelle on l'invoque, ce qui répond à ta question.
un petit exemple, l'interface Task :
définie là :
http://opensvn.csie.org/jcoincoin/ [...] duler.java
implémentée là :
http://opensvn.csie.org/jcoincoin/ [...] ibune.java
Marsh Posté le 03-05-2004 à 18:40:59
tiens en faisant du google j'ai trouve explicitement reponse a ma question 2 :
|
PS : effectivement nraynaud, je dois apprendre a utiliser les interfaces pour simuler des comportement identiques a un pointeur de fonction
Marsh Posté le 03-05-2004 à 19:05:44
the real moins moins a écrit : (sinon oui ça existe) |
J'aimerais bien voir ça
pake avec des interfaces c'est pas vraiment des pointeurs au sens C
Marsh Posté le 03-05-2004 à 19:18:53
pascal34 a écrit : J'aimerais bien voir ça |
à mon avis, il parlait de ce que je t'ai montré.
Il n'existe pas de pointeurs au sens du C en java, c'est un langage sérieux.
Marsh Posté le 03-05-2004 à 19:38:48
au fait j'ai trouve pour les n-ary tree.
Bien Bien Bien...une autre chose :
-Comment implemente ton le type generique en Java (etant donne que c un language fortement type )
Il arrive frequemment en C qu'on rajoute une user_data dans un protype de fonction. Il s'agit d'une donnee utilisateur dont on ne connait le type mais que l'utilisateur, lui, le connait car il veut l'utiliser avec cette fonction. Souvent, il s'agit d'un pointeur sur une zone memoire : type void * en C
Que dois-je faire en java pour remplacer ce type (... function (...,..., void *user_data)
Merci
Marsh Posté le 03-05-2004 à 19:44:19
http://java.sun.com/j2se/1.4.2/doc [...] ethod.html
Marsh Posté le 03-05-2004 à 19:44:58
on utilise Object et des casts, comme quand on utilise une collection :
Code :
|
Marsh Posté le 03-05-2004 à 19:52:17
ReplyMarsh Posté le 04-05-2004 à 12:26:04
Giz a écrit : les #define, c quoi en Java ? |
Code :
|
Marsh Posté le 04-05-2004 à 17:50:31
Je desire utliser des listes doublement chainees. J'espere que le type LinkedList le sont bien car c'est pas precise explicitement .
Ce type dispose de la methode
addFirst(Object o)
Moi je veux passer un int en argument (reference a un int), le pb c qu'il veut un type Object pas int. J'ai dc essaie de caster, ñais le compilo fait la gueule :
Ant.java:139: error:Cannot cast from "int" to "java.lang.Object" [JLS 15.16] |
. Comment fait-on ?
Marsh Posté le 04-05-2004 à 17:54:13
On utilise le JDK 1.5 avec l'autoboxing
En fait tu doit convertir ton int en Integer pour pouvoir l'ajouter a une collection. Les collections ne prennent que des objets, pas des types de base.
Tu fais l'operation en sens inverse pour lire ton int depuis ta liste.
Marsh Posté le 04-05-2004 à 17:56:42
Giz a écrit : Comment fait-on ? |
on lit un bouquin.
t'en as encore beaucoup des questions comme ça en stock?
Marsh Posté le 04-05-2004 à 17:59:47
spa gentil
Marsh Posté le 04-05-2004 à 18:05:28
nerisson a écrit : On utilise le JDK 1.5 avec l'autoboxing |
il faut que je mette mon int dans une classe alors, puis ma classe sera consideree comme type Object ?
Marsh Posté le 04-05-2004 à 18:13:27
ouaip. par exemple:
int monDentier = 1;
Integer toto = new Integer(monDentier);
et ce sera un object.
et pour reprendre la valeur: int monDentier = toto.intValue();
Marsh Posté le 04-05-2004 à 18:14:39
et l'autoboxing, c'est fait pour éviter ces pirouettes (mais faut encore attendre un chouïa)
Marsh Posté le 04-05-2004 à 18:23:43
TBone a écrit : ouaip. par exemple: |
merci ... avec un exemple on ne peut plus clair !
... hein the real moins moins
Marsh Posté le 04-05-2004 à 18:45:28
ReplyMarsh Posté le 04-05-2004 à 19:44:50
Giz a écrit : J'espere que le type LinkedList le sont bien car c'est pas precise explicitement |
je sais pas où tu as cherché pour voir que c'était pas précisé parce que c'est clairement indiqué dans la javadoc ...
Marsh Posté le 03-05-2004 à 12:32:03
Ca y est, je fais mes 1ers pas avec java!
Connaissant le C/C++ seulement, je me suis lu une bonne petite doc Java de sun tres bien faite
Cependant quelques questions subsistent :
1) Un programme doit obligatoirement avoir un fichier .java qui contient la classe main : j'ai pu remarque que dans les nombreux exemples de base donnes dans les documentations, la classe main est toujours englobee dans une classe (dont sa seule utilitee est d'englober la fonction main ())...cela me parait debile (par rapport au C ou un seul fichier main.c contient la fonction main et ses 10 lignes de code). Bref ceci n'est qu'une remarque.
2) La definition des methodes au sein des classes ne peut que s'effectuer a l'interieur des classes elles-memes (<=> fonction inline en C++). Cela ne permet pas de discerner l'allure global de la classe (apercu rapide) et son code (apercu en details de l'implementation). On ne peux pas faire autrement pour avoir un code plus lisible ?
Merci (ce sont que mes 1eres remarques )
EDIT :
3) pour une methode ou bien un membre de donnee (attribut) d'une classe, on doit en permanence expliciter sa declaration a l'interieur de la classe par le mot cle public/private/protected obligatoirement ?
Message édité par Giz le 03-05-2004 à 12:36:28