[Resolu}JAVA Pb pour faire appel a d'autres class d'un meme package - Java - Programmation
Marsh Posté le 28-10-2005 à 17:18:41
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 :
|
Mais vaudrais mieux que tu fasse ça:
Code :
|
Code :
|
Marsh Posté le 28-10-2005 à 17:30:48
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.
Marsh Posté le 07-11-2005 à 10:56:32
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
voilà ma classe fichier:
Code :
|
et ma classe principale:
Code :
|
Pourrais tu m'aider encore un peu ? ou me mettre sur la piste.
Marsh Posté le 07-11-2005 à 11:13:17
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
et tu appelles un constructeur avec une chaine de caracteres (new Fichier("toto.txt" )) mais tu n'as pas de tel constructeur....
Marsh Posté le 07-11-2005 à 11:26:59
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 ?
Marsh Posté le 07-11-2005 à 12:25:01
white-rabbit a écrit : par contre les histoires de constructeur et instanciation avec new, je pige pas trop. pourrais tu m'eclaircir stp ? |
Hmmm...
Thinking in Java et autres bibliolinks + passage topic débutant.
Marsh Posté le 07-11-2005 à 13:18:09
bah là en fait jlis penserenjava.free.Fr mais jcapte pas trop l'histoire des constructeurs...
leur but, pq les utiliser...
Marsh Posté le 07-11-2005 à 13:42:22
bon en fait j'ai relu et modifier qque truc.
ça marche !!! mais je sais pas trop pq...
Code :
|
Code :
|
Marsh Posté le 07-11-2005 à 15:26:48
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 :
|
eclipse barre le readline
Marsh Posté le 07-11-2005 à 15:31:33
BON, MAINTENANT, VEUX-TU BIEN ECOUTER CE QU'ON TE DIT.
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 ?
Marsh Posté le 07-11-2005 à 15:35:35
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"
Marsh Posté le 07-11-2005 à 15:46:31
et pour faire du Java, va falloir comprendre un peu ce qu'est un constructeur, ca peut servir
Marsh Posté le 07-11-2005 à 15:46:36
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
Marsh Posté le 07-11-2005 à 15:48:38
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 ce que tu n'as visiblement pas fait
Marsh Posté le 07-11-2005 à 15:53:38
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.
Marsh Posté le 07-11-2005 à 15:57:13
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.
Marsh Posté le 07-11-2005 à 15:58:14
faut perseverer
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
Marsh Posté le 07-11-2005 à 16:20:51
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
Marsh Posté le 07-11-2005 à 16:22:35
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.
Marsh Posté le 07-11-2005 à 16:31:57
white-rabbit a écrit : une classe ça me semble clair |
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 ?
Marsh Posté le 07-11-2005 à 16:39:46
et methodes tu les mets où ?
constructeur ça renvoit aux methodes si je ne me trompe pas
Marsh Posté le 07-11-2005 à 16:50:12
+1 post-it
R.T.F.B. WAREZ MY L.A.R.T. ?
Marsh Posté le 07-11-2005 à 16:53:02
white-rabbit a écrit : et methodes tu les mets où ? |
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,...
Marsh Posté le 07-11-2005 à 17:39:30
et constructeur prevoie les differentes manieres de faire ces methodes non ?
allumer les phares avant,
allumer les phares avant à 50%
...
Marsh Posté le 07-11-2005 à 17:43:17
(je sais, message inutile tout ca, mais la....)
Marsh Posté le 07-11-2005 à 17:52:35
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 :
|
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 :
|
ton comprends mieux le principe ?
Marsh Posté le 07-11-2005 à 18:07:38
white-rabbit a écrit : et constructeur prevoie les differentes manieres de faire ces methodes non ? |
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.
Marsh Posté le 08-11-2005 à 14:54:53
TheRom_S a écrit : non le constructeur ne fait qu'initialiser ton objet, le construire :
|
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 :
|
Code :
|
edit1: corrigé la syntaxe
Marsh Posté le 08-11-2005 à 15:09:10
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 )
Marsh Posté le 08-11-2005 à 15:16:03
- 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 ?
Marsh Posté le 08-11-2005 à 15:19:03
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
Tu peux m'expliquer à quoi elle sert là ta classe "voiture"
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
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
Marsh Posté le 08-11-2005 à 15:26:06
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?
Marsh Posté le 08-11-2005 à 15:37:30
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.
Marsh Posté le 08-11-2005 à 15:40:59
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 :
|
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 :
|
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 :
|
Marsh Posté le 08-11-2005 à 16:17:37
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 !!
Marsh Posté le 08-11-2005 à 16:52:26
Tu sais quoi demander à Noël !
http://www.eyrolles.com/Informatiq [...] s-nuls.php
Marsh Posté le 28-10-2005 à 16:05:08
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