Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1436 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Structure d'un programme

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[Java] Structure d'un programme

n°714073
Giz
Posté le 03-05-2004 à 12:32:03  profilanswer
 

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 ?  :heink:


Message édité par Giz le 03-05-2004 à 12:36:28
mood
Publicité
Posté le 03-05-2004 à 12:32:03  profilanswer
 

n°714092
seabee
Posté le 03-05-2004 à 12:48:10  profilanswer
 

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

n°714149
nraynaud
lol
Posté le 03-05-2004 à 13:37:02  profilanswer
 

pour le 2ème point :
http://www.nraynaud.org/kilombo/eclipse.png
 
 
edit : le point d'interrogation est dû à un plugin.


Message édité par nraynaud le 03-05-2004 à 13:38:04

---------------
trainoo.com, c'est fini
n°714174
benou
Posté le 03-05-2004 à 14:00:24  profilanswer
 

pour le point 2, la javadoc est aussi la pour ca ...


---------------
ma vie, mon oeuvre - HomePlayer
n°714211
nraynaud
lol
Posté le 03-05-2004 à 14:17:41  profilanswer
 

benou a écrit :

pour le point 2, la javadoc est aussi la pour ca ...

la javadoc c'est pour les faibles.


---------------
trainoo.com, c'est fini
n°714263
myst78
Posté le 03-05-2004 à 14:41:31  profilanswer
 

nraynaud a écrit :

la javadoc c'est pour les faibles.


je vois pas pourquoi...  :heink:


---------------
Fleur de métal, entité invulnérable, vêtue tant bien que mal, d'une muraille inébranlable...
n°714266
the real m​oins moins
Posté le 03-05-2004 à 14:42:54  profilanswer
 

myst78 a écrit :

je vois pas pourquoi...  :heink:

cqfd


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°714332
nraynaud
lol
Posté le 03-05-2004 à 15:17:16  profilanswer
 

+1


---------------
trainoo.com, c'est fini
n°714437
pascal34
one point !
Posté le 03-05-2004 à 16:52:28  profilanswer
 

Giz a écrit :


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.


 
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  :jap:


Message édité par pascal34 le 03-05-2004 à 16:53:25
n°714458
the real m​oins moins
Posté le 03-05-2004 à 17:04:47  profilanswer
 

pascal34 a écrit :


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.
 

ouaaais comme en 40 !


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le 03-05-2004 à 17:04:47  profilanswer
 

n°714465
Giz
Posté le 03-05-2004 à 17:11:24  profilanswer
 

Bon dites moi, j'ai besoin de pointeurs de fonction, ca existe ca en Java :??:

n°714473
the real m​oins moins
Posté le 03-05-2004 à 17:17:30  profilanswer
 

100balles que t'en as pas besoin :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°714474
the real m​oins moins
Posté le 03-05-2004 à 17:17:35  profilanswer
 

(sinon oui ça existe)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°714476
seabee
Posté le 03-05-2004 à 17:18:59  profilanswer
 

Spoiler :


Faut utiliser des nested class.

n°714481
Giz
Posté le 03-05-2004 à 17:23:45  profilanswer
 

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


Message édité par Giz le 03-05-2004 à 17:36:24
n°714486
the real m​oins moins
Posté le 03-05-2004 à 17:29:00  profilanswer
 

Giz a écrit :

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 ?
 

un peu de programmation orientée objet peut etre?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°714489
Giz
Posté le 03-05-2004 à 17:32:21  profilanswer
 

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 ?  [:wam]

n°714492
darklord
You're welcome
Posté le 03-05-2004 à 17:33:17  profilanswer
 

déjà parler de fonction ca n'a rien de vraiment objet.

n°714499
Giz
Posté le 03-05-2004 à 17:37:18  profilanswer
 

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  :pfff:

n°714509
nraynaud
lol
Posté le 03-05-2004 à 17:49:43  profilanswer
 

Giz a écrit :

bon methode si tu preferes, ... ca existe dans les classes ca non  :pfff:

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


---------------
trainoo.com, c'est fini
n°714542
Giz
Posté le 03-05-2004 à 18:40:59  profilanswer
 

tiens en faisant du google j'ai trouve explicitement reponse a ma question 2 :


"En Java une classe et tout ce qu'elle contient devant être déclarée entièrement dans un seul fichier, il n'est pas possible comme en C++ de répartir les méthodes d'une même classe sur plusieurs fichiers."


 
PS : effectivement nraynaud, je dois apprendre a utiliser les interfaces pour simuler des comportement identiques a un pointeur de fonction :)


Message édité par Giz le 03-05-2004 à 18:42:44
n°714563
pascal34
one point !
Posté le 03-05-2004 à 19:05:44  profilanswer
 

the real moins moins a écrit :

(sinon oui ça existe)


 
J'aimerais bien voir ça  :ouch:
 
pake avec des interfaces c'est pas vraiment des pointeurs au sens C


Message édité par pascal34 le 03-05-2004 à 19:07:49
n°714571
nraynaud
lol
Posté le 03-05-2004 à 19:18:53  profilanswer
 

pascal34 a écrit :

J'aimerais bien voir ça  :ouch:
 
pake avec des interfaces c'est pas vraiment des pointeurs au sens C

à 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.


---------------
trainoo.com, c'est fini
n°714586
Giz
Posté le 03-05-2004 à 19:38:48  profilanswer
 

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  :jap:

n°714597
the real m​oins moins
Posté le 03-05-2004 à 19:44:19  profilanswer
 
n°714598
nraynaud
lol
Posté le 03-05-2004 à 19:44:58  profilanswer
 

on utilise Object et des casts, comme quand on utilise une collection :

Code :
  1. List list = new ArrayList();
  2. list.add("coucou" );
  3. String s = (String) list.get(0);



---------------
trainoo.com, c'est fini
n°714612
nraynaud
lol
Posté le 03-05-2004 à 19:51:48  profilanswer
 
n°714613
the real m​oins moins
Posté le 03-05-2004 à 19:52:17  profilanswer
 

ok


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°715149
Giz
Posté le 04-05-2004 à 12:13:13  profilanswer
 

les #define, c quoi en Java ?

n°715157
nerisson
Pic-pic
Posté le 04-05-2004 à 12:26:04  profilanswer
 

Giz a écrit :

les #define, c quoi en Java ?


Code :
  1. public static final int toto = 0;


---------------
Light is right
n°715433
Giz
Posté le 04-05-2004 à 17:50:31  profilanswer
 

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 ?

n°715438
nerisson
Pic-pic
Posté le 04-05-2004 à 17:54:13  profilanswer
 

On utilise le JDK 1.5 avec l'autoboxing  :D  
 
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.


---------------
Light is right
n°715440
the real m​oins moins
Posté le 04-05-2004 à 17:56:42  profilanswer
 

Giz a écrit :

Comment fait-on ?

on lit un bouquin.
t'en as encore beaucoup des questions comme ça en stock?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°715442
TBone
Pouet.
Posté le 04-05-2004 à 17:59:47  profilanswer
 

spa gentil :o
 
:D


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
n°715449
Giz
Posté le 04-05-2004 à 18:05:28  profilanswer
 

nerisson a écrit :

On utilise le JDK 1.5 avec l'autoboxing  :D  
 
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.


 
il faut que je mette mon int dans une classe alors, puis ma classe sera consideree comme type Object ?  :heink:

n°715453
TBone
Pouet.
Posté le 04-05-2004 à 18:13:27  profilanswer
 

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();


Message édité par TBone le 04-05-2004 à 18:13:56

---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
n°715454
TBone
Pouet.
Posté le 04-05-2004 à 18:14:39  profilanswer
 

et l'autoboxing, c'est fait pour éviter ces pirouettes (mais faut encore attendre un chouïa)


Message édité par TBone le 04-05-2004 à 18:14:55

---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
n°715461
Giz
Posté le 04-05-2004 à 18:23:43  profilanswer
 

TBone a écrit :

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();


 
merci  ... avec un exemple on ne peut plus clair ! :jap:
... hein the real moins moins  :kaola:

n°715470
the real m​oins moins
Posté le 04-05-2004 à 18:45:28  profilanswer
 

mais ta gueule :sarcastic:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°715505
benou
Posté le 04-05-2004 à 19:44:50  profilanswer
 

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 ...


---------------
ma vie, mon oeuvre - HomePlayer
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
  FORUM HardWare.fr
  Programmation
  Java

  [Java] Structure d'un programme

 

Sujets relatifs
[resolu][Java] Reproduir un assistant de saisi semi-automatiquegriser la croix de la fenetre en java
[Java] : Clic Droit sur un navigateur webexplication de bloc "static" en java
Programme qui se connecte à un serveur FTP pour rapatrier des fichiersPb de FORK sur un programme serveur
Acceder a une page avec un prog java sans passer par la page d'accesAide pour un petit programme très simple !
[JAVA] Java et delegatespassage de parametres d'un programme à un autre
Plus de sujets relatifs à : [Java] Structure d'un programme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR