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

  FORUM HardWare.fr
  Programmation
  Java

  [Resolu}JAVA Pb pour faire appel a d'autres class d'un meme package

 


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

[Resolu}JAVA Pb pour faire appel a d'autres class d'un meme package

n°1233650
white-rabb​it
oOps !
Posté le 28-10-2005 à 16:05:08  profilanswer
 

oyé, me revoilà. je continu d'avancer doucement.  
j'ai reussi à terminer mon prog d'hier, avec la possibilité d'avoir le choix d'ajouter des noms dans un fichier, le relire, l'effacer ou quitter le programme. Sauf que j'avais fais tout cela dans une enorme classe qui etait vraiment bordel.  
Je voudrais maintenant essayer de faire le menage, en decoupant la classe en plusieurs, ou en methodes.  
 
Mais je ne parviens pas à lancer mes 'sous' classes a partir de la classe principale.  
Voici ma hierarchie:  
 
Work   //nom du package  
 - Principale // classe avec le main ()  
 - Ecrire fichier // classe ecrire avec en argument ce qu'il faut ecrire  
 - Relire fichier // classe  
   
dans Principal j'ai importé  tout le package  
mais je n'arrive pas à lancer les autres classes  
je suis pas censé ecrire work.Ecrire; ?


Message édité par white-rabbit le 14-11-2005 à 15:53:58

---------------
>> Portfolio: www.MyDeclic.com
mood
Publicité
Posté le 28-10-2005 à 16:05:08  profilanswer
 

n°1233740
cyquicri
Posté le 28-10-2005 à 17:18:41  profilanswer
 

Tu n'as même pas besoin d'importer car ils sont dans le même package, par contre c'est Ecrire.nomMethode();  
que tu dois appeler et dans ce cas tu déclare ta méthode comme ceci  

Code :
  1. public static void nomMethode()
  2. {
  3. }


 
Mais vaudrais mieux que tu fasse ça:

Code :
  1. package work;
  2. public class Fichier {
  3.     public Fichier(String pathFile)
  4.     {
  5.     //ouverture du fichier
  6.     }
  7.    
  8.     public void ecrire(String args) {
  9.     //....
  10.     }
  11.     public void relire() {
  12.     //....
  13.     }
  14. }


 

Code :
  1. package work;
  2. public class Principale {
  3.     /**
  4.      * @param args
  5.      */
  6.     public static void main(String[] args) {
  7.         Fichier theFile = new Fichier("..." );
  8.         theFile.ecrire("toto" );
  9.     }
  10. }


Message édité par cyquicri le 28-10-2005 à 17:22:02

---------------
Bite my shiney metal ass! Galerie Perso
n°1233754
phnatomass
Je m'empare de ton esprit !!
Posté le 28-10-2005 à 17:30:48  profilanswer
 

white-rabb it > Tu m'as l'air très sympatique, mais ne veux tu pas profiter de ce WE vraisemblablement prolongé, ou mieux de tes vacances de la toussain, pour bien lire un livre sur la programation  Java de base ?
 Car les coups de :
main(int choice)
ou  
switch sans break
Et pour finir d'appler un classe qu'on a codé depuis un main.
Ca franchement n'importe quelle bouquin de poche te l'apprendra très rapidement.

n°1240213
white-rabb​it
oOps !
Posté le 07-11-2005 à 10:56:32  profilanswer
 

Salut cyquicri, dsl de repondre si tard.
merci bcp pour ta reponse, j'ai essayé de l'appliquer en me faisant deux classes.
Mais je n'y parviens pas  :pfff:  
 
voilà ma classe fichier:

Code :
  1. package work;
  2. public class Fichier {
  3.     public void Lire() {
  4.      System.out.println("test Lire" );
  5. }
  6.    
  7.    
  8.     public void ecrire(String[] text) {
  9.      System.out.println(text);
  10.     }
  11.    
  12.     public void relire() {
  13.      System.out.println("test relire" );
  14.    
  15.     }
  16. }


 
et ma classe principale:

Code :
  1. package work;
  2. public class Principale {
  3.     /**  
  4.      * @param args  
  5.      */
  6.     public static void main(String[] args) {
  7.         Fichier theFile = new Fichier("user.txt" ); //je n'ai pas besoin de mettre de nom de ficiher pour le moment.. comment faire?
  8.         theFile.ecrire("toto" ); //je souhaite faire passer le mot "toto"  
  9.     }
  10. }


 
Pourrais tu m'aider encore un peu ? ou me mettre sur la piste.


---------------
>> Portfolio: www.MyDeclic.com
n°1240221
souk
Tourist
Posté le 07-11-2005 à 11:13:17  profilanswer
 

je sais pas si tu as vu, mais ta methode ecrire prend en argument un tableau de String, et tu lui envoies une String, alors deja le compilateur doit pas etre content [:pingouino]
 
et tu appelles un constructeur avec une chaine de caracteres (new Fichier("toto.txt" )) mais tu n'as pas de tel constructeur....  [:roane]
 


Message édité par souk le 07-11-2005 à 11:15:15
n°1240235
white-rabb​it
oOps !
Posté le 07-11-2005 à 11:26:59  profilanswer
 

arf effectivement, pour le tableau j'ai pas fais attention.
 
par contre les histoires de constructeur et instanciation avec new, je pige pas trop. pourrais tu m'eclaircir stp ?


---------------
>> Portfolio: www.MyDeclic.com
n°1240245
souk
Tourist
Posté le 07-11-2005 à 11:33:43  profilanswer
 

est-ce que tu sais ce qu'est un constructeur ?

n°1240289
sircam
I Like Trains
Posté le 07-11-2005 à 12:25:01  profilanswer
 

white-rabbit a écrit :

par contre les histoires de constructeur et instanciation avec new, je pige pas trop. pourrais tu m'eclaircir stp ?


Hmmm...    [:pingouino]
 
Thinking in Java et autres bibliolinks + passage topic débutant.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1240317
white-rabb​it
oOps !
Posté le 07-11-2005 à 13:18:09  profilanswer
 

bah là en fait jlis penserenjava.free.Fr mais jcapte pas trop l'histoire des constructeurs...  
leur but, pq les utiliser...
 


---------------
>> Portfolio: www.MyDeclic.com
n°1240352
white-rabb​it
oOps !
Posté le 07-11-2005 à 13:42:22  profilanswer
 

bon en fait j'ai relu et modifier qque truc.
ça marche !!! mais je sais pas trop pq...  
 

Code :
  1. package work; 
  2. public class Principale { 
  3.     /**   
  4.      * @param args   
  5.      */ 
  6.     public static void main(String[] args) { 
  7.         Fichier theFile = new Fichier();
  8.         theFile.ecrire("toto333" ); 
  9.     } 
  10. }


 

Code :
  1. package work;
  2. public class Fichier {
  3.     public void Lire() {
  4.      System.out.println("test Lire" );
  5. }
  6.    
  7.    
  8.     public void ecrire(String text) {
  9.      System.out.println(text);
  10.     }
  11.    
  12.     public void relire() {
  13.      System.out.println("test relire" );
  14.    
  15.     }
  16. }



---------------
>> Portfolio: www.MyDeclic.com
mood
Publicité
Posté le 07-11-2005 à 13:42:22  profilanswer
 

n°1240511
white-rabb​it
oOps !
Posté le 07-11-2005 à 15:26:48  profilanswer
 

bon je viens de faire le menage dans mon grand programme initial.
du coup j'ai pu faire une methode qui en faisant passer un argument permet d'ecrire ou reinitialiser le contenu d'un fichier.
 
par contre depuis le debut je traine une erreur dans mon programme pour lire le fichier, le voici:

Code :
  1. public void lire() {
  2.      // Relecture du fichier user.txt
  3.  System.out.println("Contenu du fichier user: " );
  4.  try
  5.  {
  6.       // Open the file that is the first  
  7.       // command line parameter
  8.       FileInputStream fstream = new
  9.    FileInputStream("user.txt" );
  10.         // Convert our input stream to a
  11.       // DataInputStream
  12.    DataInputStream in = new DataInputStream(fstream);
  13.       // Continue to read lines while  
  14.       // there are still some left to read
  15.       while (in.available() !=0)
  16.   {
  17.         // Print file line to screen
  18.   System.out.println (in.readLine());  // ici le Readline s'affiche barré par eclipse
  19.   }
  20.         System.out.println("" );
  21.    in.close();
  22.   }
  23.      catch (Exception e)
  24.   {
  25.     System.err.println("File input error" );
  26.   } 
  27.     } //fin lire


 
eclipse barre le readline


---------------
>> Portfolio: www.MyDeclic.com
n°1240518
sircam
I Like Trains
Posté le 07-11-2005 à 15:31:33  profilanswer
 

BON, MAINTENANT, VEUX-TU BIEN ECOUTER CE QU'ON TE DIT. :o
 
Parce que tu chipotes, tu lances du code dans tous les sens sans rien comprendre, et je ne vois pas comment on peut t'aider autrement que :
 
==> Topic passage obligé débutants
 
Où tu liras qu'ON N'UTILISE PAS D'IDE, ET ENCORE MOINS ECLIPSE, QUAND ON EST DEBUTANT.
 
Est-ce plus clair à présent ? [:pingouino]


Message édité par sircam le 07-11-2005 à 15:32:00

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1240521
TheRom_S
Posté le 07-11-2005 à 15:35:35  profilanswer
 

c'est sûr, le topic "passage obligé pour les débutants" t'apportera tout plein d'information, par exemple savoir trouver tout seul que "readLine()" est "deprecated" pour "DataInputStream" et t'expliquera ce que ça veut dire, tu sauras alors exploiter la "javadoc" et comprendre qu'il te faut utiliser à la place un "BufferedReader"


---------------
The Rom's, à votre service
n°1240528
souk
Tourist
Posté le 07-11-2005 à 15:46:31  profilanswer
 

et pour faire du Java, va falloir comprendre un peu ce qu'est un constructeur,   ca peut servir [:pingouino]

n°1240529
white-rabb​it
oOps !
Posté le 07-11-2005 à 15:46:36  profilanswer
 

je suis deja passé par ce topic pour different pb. et vu la façon dont j'ai été traité, j'ai senti que les debutants n'y étaient pas trop appreciés. j'ai donc repris mon pb dans ce nouveau topic. dsl


---------------
>> Portfolio: www.MyDeclic.com
n°1240532
souk
Tourist
Posté le 07-11-2005 à 15:48:38  profilanswer
 

le topic pour debutant n'est pas un topic pour poser ses questions, c'est pour ca qu'on t'a dit de creer un topic. le topic debutant est la comme resource, avec des liens et des infos qu'il faut lire quand on debute [:pingouino] ce que tu n'as visiblement pas fait [:pingouino]

n°1240535
white-rabb​it
oOps !
Posté le 07-11-2005 à 15:53:38  profilanswer
 

je passe mes journées sur des sites à lire des doc sur penserenjava.free.fr commentcamarche.com creation-site-internet.com et bien d'autres. tous on une façon de presenter les choses, et dans aucun je n'arrive à mettre en application par la suite ce que je viens de lire. Je ne sais aps pq. peut etre la prog objet dont j'ai pas cerné le truc poru le moment. J'avais eu bcp moins de pb avec le C.


---------------
>> Portfolio: www.MyDeclic.com
n°1240537
sircam
I Like Trains
Posté le 07-11-2005 à 15:57:13  profilanswer
 

white-rabbit a écrit :

je passe mes journées sur des sites à lire des doc sur penserenjava.free.fr commentcamarche.com creation-site-internet.com et bien d'autres.


Commence par appliquer ce qu'on te dit, à savoir p.e. ne pas utiliser d'IDE, et encore moins Eclipse.
 
TIJ p.e. est un bouquin très didactique pour peu que tu prennes le temps de le lire...
 
Tu as dû lire un peu vite. [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1240538
souk
Tourist
Posté le 07-11-2005 à 15:58:14  profilanswer
 

faut perseverer [:joce]
 
deja comprends tu la difference entre une classe et une instance de classe, sais tu ce qu'est un constructeur ? parce que si deja ca c'est pas clair, va falloir lire et comprendre avant de programmer [:roane]

n°1240559
white-rabb​it
oOps !
Posté le 07-11-2005 à 16:20:51  profilanswer
 

une classe ça me semble clair
instance de classe pas trop
 
constructeur je crois que c'est bon maintenant.
 
en essayant de ramener à du concret,
la classe ce serait par exemple un Vehicule
les methodes, le faire rouler, stopper, l'ouvrir
un constructeur pourrait par exemple etre de la faire rouler à telle vitesse ou jusque tel point.  
 
l'instance de classe je vois pas trop comment la definir dans ce cas


---------------
>> Portfolio: www.MyDeclic.com
n°1240562
sircam
I Like Trains
Posté le 07-11-2005 à 16:22:35  profilanswer
 

Instance : un véhicule en particulier : le tien (telle marque, telles caractéristiques); le mien (telle autre marque, telles autres caractéristiques).
 
Je crois que tout cela est clair dans TIJ, encore une fois. [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1240573
post_it
Hmmmm!...
Posté le 07-11-2005 à 16:31:57  profilanswer
 

white-rabbit a écrit :

une classe ça me semble clair
instance de classe pas trop
 
constructeur je crois que c'est bon maintenant.
 
en essayant de ramener à du concret,
la classe ce serait par exemple un Vehicule
les methodes, le faire rouler, stopper, l'ouvrir
un constructeur pourrait par exemple etre de la faire rouler à telle vitesse ou jusque tel point.  
 
l'instance de classe je vois pas trop comment la definir dans ce cas


 
C'est pas exactement ça non...
 
La classe, c'est le plan du véhicule.
Le constructeur, c'est la chaine de fabrication du véhicule
L'instance de classe, c'est le résultat : le véhicule construit par la chaine de fabrication à partir du plan.
 
C'est un peu plus clair ?

n°1240580
white-rabb​it
oOps !
Posté le 07-11-2005 à 16:39:46  profilanswer
 

et methodes tu les mets où  ?
 
constructeur ça renvoit aux methodes si je ne me trompe pas


---------------
>> Portfolio: www.MyDeclic.com
n°1240585
souk
Tourist
Posté le 07-11-2005 à 16:43:53  profilanswer
 

[:ciler]

n°1240591
sircam
I Like Trains
Posté le 07-11-2005 à 16:50:12  profilanswer
 

[:kiki]
 
+1 post-it  
 
R.T.F.B. WAREZ MY L.A.R.T. ?


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1240594
post_it
Hmmmm!...
Posté le 07-11-2005 à 16:53:02  profilanswer
 

white-rabbit a écrit :

et methodes tu les mets où  ?
 
constructeur ça renvoit aux methodes si je ne me trompe pas


 
Les  méthodes font partie de la classe. Elles définissent les actions qui sont possibles. Ex: rouler, s'arrêter, tourner, allumer les phares, allumer les néons bleus qui déchirent,...

n°1240628
white-rabb​it
oOps !
Posté le 07-11-2005 à 17:39:30  profilanswer
 

et constructeur prevoie les differentes manieres de faire ces methodes non ?
allumer les phares avant,
allumer les phares avant à 50%
...


---------------
>> Portfolio: www.MyDeclic.com
n°1240633
souk
Tourist
Posté le 07-11-2005 à 17:43:17  profilanswer
 

[:ciler] [:ciler] [:pingouino] [:ciler] [:ciler]
 
(je sais, message inutile tout ca, mais la....)


Message édité par souk le 07-11-2005 à 17:43:29
n°1240636
sircam
I Like Trains
Posté le 07-11-2005 à 17:45:35  profilanswer
 

[:alph-one]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1240643
TheRom_S
Posté le 07-11-2005 à 17:52:35  profilanswer
 

non le constructeur ne fait qu'initialiser ton objet, le construire :
imagine ta voiture avec des portes, des roues et un volant
LinkedList<Porte> portes;
LinkedList<Roue> roues;
Volant volant;
 
ton constructeur va construire ta voiture :
 

Code :
  1. public Voiture() { // ici tu vois que le type de retour est Voiture : tu crée un nouvel objet de la classe
  2.     this.portes=new LinkedList<Porte>(); // là tu prépares ta LinkedList en créant l'objet grâce à son constructeur : "LinkedList()"
  3.     this.portes.addLast(new Porte()); // là tu ajoutes une porte à ta liste en créant une nouvelle porte grâce à son constructeur : "Porte()"
  4.     this.roues=new LinkedList<Roue>(); //même chose
  5.     this.roues.addLast(new Roue());
  6.     this.volant=new Volant();   // toujours pareil
  7. }


 
là ton seul problème c'est que tu te retrouves avec un Voiture qui n'a qu'une seule porte et qu'une seule roue, mais bon tu peux en ajouter plus par la suite grâce à des méthodes par exemple :

Code :
  1. public void ajouterRoue() {
  2.     this.roues.addLast(new Roue());
  3. }


 
ton comprends mieux le principe ?


---------------
The Rom's, à votre service
n°1240651
masklinn
í dag viðrar vel til loftárása
Posté le 07-11-2005 à 18:07:38  profilanswer
 

white-rabbit a écrit :

et constructeur prevoie les differentes manieres de faire ces methodes non ?
allumer les phares avant,
allumer les phares avant à 50%
...


Non, ça ça fait partie du plan et des spécifications techniques de la voiture == de la classe.
 
Le constructeur ne fait que "monter les pièces" de l'instance.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1241301
white-rabb​it
oOps !
Posté le 08-11-2005 à 14:54:53  profilanswer
 

TheRom_S a écrit :

non le constructeur ne fait qu'initialiser ton objet, le construire :
imagine ta voiture avec des portes, des roues et un volant
LinkedList<Porte> portes;
LinkedList<Roue> roues;
Volant volant;
 
ton constructeur va construire ta voiture :
 

Code :
  1. public Voiture() { // ici tu vois que le type de retour est Voiture : tu crée un nouvel objet de la classe
  2.     this.portes=new LinkedList<Porte>(); // là tu prépares ta LinkedList en créant l'objet grâce à son constructeur : "LinkedList()"
  3.     this.portes.addLast(new Porte()); // là tu ajoutes une porte à ta liste en créant une nouvelle porte grâce à son constructeur : "Porte()"
  4.     this.roues=new LinkedList<Roue>(); //même chose
  5.     this.roues.addLast(new Roue());
  6.     this.volant=new Volant();   // toujours pareil
  7. }


 
là ton seul problème c'est que tu te retrouves avec un Voiture qui n'a qu'une seule porte et qu'une seule roue, mais bon tu peux en ajouter plus par la suite grâce à des méthodes par exemple :

Code :
  1. public void ajouterRoue() {
  2.     this.roues.addLast(new Roue());
  3. }


 
ton comprends mieux le principe ?


 
merci pour toutes ces explications et exemples. tout devient plus clair.
je me suis amusé à faire un projet autour de ton dernier exemple TheRom_s
 
je met la source juste pour avoir la confirmation que j'ia bien suivi ton modele, et que j'ai bien utilisé les constructeurs, methodes, classes..
 

Code :
  1. package Usine;
  2. public class Voiture {  // Classe
  3. public static void main(String[] args) { 
  4.  montage Clio = new montage();     // Constructeur
  5.  montage Ferrari = new montage();
  6.  montage Velo = new montage();
  7.  System.out.println("Clio:" );
  8.  Clio.roue(4);
  9.  Clio.porte(4);
  10.  Clio.volant();
  11.  System.out.println("Ferrari:" );
  12.  Ferrari.roue(4);
  13.  Ferrari.porte(2);
  14.  Ferrari.volant("sport" );
  15.  System.out.println("Velo:" );
  16.  Velo.roue(2);
  17. } //Fin main
  18. } //Fin Voiture


 

Code :
  1. package Usine;
  2. public class Montage {
  3.     public void roue(int NbR) {   // methodes
  4.      System.out.println(NbR + " Roues montées" );
  5. }
  6.     public void porte(int NbP) {
  7.      System.out.println(NbP + " Portes montées" );
  8. }
  9.     public void volant(String Type) {
  10.      System.out.println("Volant "+ Type + " installé" );
  11. }
  12.     public void volant() {
  13.      System.out.println("Volant standard installé" );
  14.     }
  15. }


 
edit1: corrigé la syntaxe


Message édité par white-rabbit le 08-11-2005 à 15:13:54

---------------
>> Portfolio: www.MyDeclic.com
n°1241328
masklinn
í dag viðrar vel til loftárása
Posté le 08-11-2005 à 15:09:10  profilanswer
 

Non, t'as rien compris.
 
Quand tu sors du constructeur, tu dois avoir un objet utilisable, là il l'est pas.
 
Ton nombre de roues et de portes et ton volant, tu les files au constructeur de ta machine et il se démerde avec, en sortie t'as un objet fonctionnel.
 
Ensuite tes noms ne suivent pas les conventions java, et ton programme n'est pas logique (c'est quoi cette classe vide avec juste un main [:petrus dei])


Message édité par masklinn le 08-11-2005 à 15:10:16

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1241339
white-rabb​it
oOps !
Posté le 08-11-2005 à 15:16:03  profilanswer
 

- effectivement pour les conventions, je n'ai pas bien fais attention aux syntaxes :(
- pour le main, il n'est pas vide ??
- par contre qu'appelles tu sortir du constructeur fonctionnel ?


---------------
>> Portfolio: www.MyDeclic.com
n°1241340
masklinn
í dag viðrar vel til loftárása
Posté le 08-11-2005 à 15:19:03  profilanswer
 

white-rabbit a écrit :

- pour le main, il n'est pas vide ??


J'ai pas parlé du main, j'ai parlé de la classe dans laquelle est le main [:mlc]
 
Tu peux m'expliquer à quoi elle sert là ta classe "voiture" [:petrus dei]

Citation :

- par contre qu'appelles tu sortir du constructeur fonctionnel ?


Tes objets de classe "montage" (qui n'ont aucun sens, vu qu'à partir des plans d'un montage du sors des voitures et des vélos, comme ça paf), tu peux en faire quoi une fois que tu les a construits [:petrus dei]
 
Rien en l'état, ils sont inutiles, t'es obligé d'appeler 15 fonctions à chaque fois - et toujours les mêmes - pour en faire quelque chose d'utilisable [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1241345
white-rabb​it
oOps !
Posté le 08-11-2005 à 15:26:06  profilanswer
 

bah en fait si je met pas la ligne avec classe Voiture {...
rien ne fonctionne. et je suis bien obligé d'avoir une classe main qque part non?
 
quand aux objets de la classe montage, je ne sais pas exactement ce que je pourrais definir d'autre pour apres mieux adapter à chaque truc que je vais faire fabriquer..
 
tu dis en fait quand dans montage, je devrais plutot avoir une methode clio, ferrari, velo ... plutot que chaque element qui les constitue?


---------------
>> Portfolio: www.MyDeclic.com
n°1241355
post_it
Hmmmm!...
Posté le 08-11-2005 à 15:37:30  profilanswer
 

Non, ce qu'il veut dire c'est qu'une voiture doit nécessairement avoir quatre roues pour être utilisable. Et cela devrait donc être fait par le constructeur. Et pour les portes, c'est pareil, tu dis au contructeur le nombre de portes que tu veux et il construit la voiture en conséquence. Les roues et les portes de la voiture sont des élèments qui sont mis en place par le constructeur, sinon tu n'as pas une voiture, tu as une carcasse qui sert à rien ! L'idée d'un constructeur, c'est de fournir un objet prêt à l'emploi.

n°1241358
TheRom_S
Posté le 08-11-2005 à 15:40:59  profilanswer
 

Effectivement, tu n'as pas encore compris l'utilité et le principe du constructeur
 
En prog orientée objet, tu sais maintenant que tu utilise des objets. Comme dans la vie réelle, tu dois construire ton objet avant de l'utiliser. C'est le rôle du constructeur. Ce constructeur ressemble à une méthode, mais n'est utilisé qu'une seule fois et uniquement au moment de la construction de ton objet.
 
Dans les classes basiques, on peut utiliser un constructeur par défaut (qui ne fait rien). C'est le ca dans les classes (donc objets) qui sont un tout et qui ne sont pas constitués de plusieurs objets. Par exemple, une page blanche (A4) que tu n'utilisera que beaucoup plus tard avec ton programme pour y écrire des choses.
 
Dans les classes plus complexes comme une voiture, tu as besoin de de créer tous les éléments constitutifs de ta voiture. Tu utilise donc un constructeur de "Voiture" qui va lui même utiliser les constructeurs de "Roue" et "Porte"
 

Code :
  1. public class Voiture {
  2.     public Voiture() {
  3.         this.roueAvantDroite=new Roue();
  4.         this.roueAvantGauche=new Roue();
  5.         // ... jusqu'à
  6.         this.porteArriereGauche=new Porte();
  7.         this.haillonCoffre=new Coffre();
  8.     }
  9. }


 
Dans cet exemple, les constructeurs "Roue()", "Porte()" et "Coffre()" permettent de construire les roues, portes et coffre que tu attache à ta voiture.
 
Tu pourras aussi avoir besoin de détailler ces constructeurs. Par exemple :

Code :
  1. public class Porte {
  2.     public Porte() {
  3.         this.poignee=new Poignee();
  4.         this.vitreElectrique=new Vitre();
  5.         this.renfortLateral=new RenfortLateral();
  6.         this.videPoche=new Rangement();
  7.     }
  8. }


 
Donc tu vois ici qu'à chaque fois que tu détaille la construction d'un élément, tu pourras (suivant le besoin, suivant le cas) faire appel aux constructeurs des éléments constitutifs de ton objet principal.
 
Pour finir, La classe d'entrée de ton programme, celle qui contient la fonction "main", est rarement un objet de ton programme. Par habitude, on préfère en faire un "simili objet" appelé par exemple "Application" ou même "Main" qui sera vide au sens objet, qui ne sera pas utilisé en tant qu'objet non plus, mais qui contiendra la fonction "main" qui elle va mettre en place les autres objets (ceux qui ont un sens et une utilité dans ton programme) et les utiliser (après bien sûr les avoir construits)
exemple :

Code :
  1. public class Application {
  2.     public static void main(String[] args) {
  3.         Voiture clio1=new Voiture();
  4.         Voiture clio2=new Voiture();
  5.         // là, tes 2 voitures sont construites, tu peux à présent les utiliser
  6.         clio1.avancer();
  7.         clio2.reculer();
  8.         // etc ...
  9.     }
  10. }


---------------
The Rom's, à votre service
n°1241393
white-rabb​it
oOps !
Posté le 08-11-2005 à 16:17:37  profilanswer
 

hmm hmm hmm.
En fait quand je te suis The Rom's, tout me semble clair, mais en fait comme dans ton code, rien ne s'affiche en concret. ça me fait bizarre d'utiliser autant de constructeurs.  
ton "this" permet, si j'ai bien lu dans TIJ, fait reference à la clio en cours de construction.
 
je vais essayer d'appliquer tout ce que j'ai compris aujourd'hui à un nouveau projet. merci pour votre aide et patience les gars !!


---------------
>> Portfolio: www.MyDeclic.com
n°1241425
phnatomass
Je m'empare de ton esprit !!
Posté le 08-11-2005 à 16:52:26  profilanswer
 

Tu sais quoi demander à Noël !
http://www.eyrolles.com/Informatiq [...] s-nuls.php

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Resolu}JAVA Pb pour faire appel a d'autres class d'un meme package

 

Sujets relatifs
comment implémenter un objet dont le .class est dans autre répertoirejava.rmi.UnmarshalException
[résolu]Menus - Question de débutantSleep dans les thread java
[Struts] 1ere application [RESOLU]Recherche du maximum d une liste de nombres[resolu]
format de cellule excel [résolu][RESOLU] Struts iterate et options
[ PHP ][ Resolu ] Upload et verification d'un fichier binaire[Résolu][VBA] Problème de "" ...
Plus de sujets relatifs à : [Resolu}JAVA Pb pour faire appel a d'autres class d'un meme package


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