Plein de questions de débutant [JAVA] - Java - Programmation
Marsh Posté le 02-05-2003 à 18:55:54
Je connais à peine Java
Mais t'es sur que le code avec le protected passe ? Si c'est le cas, c'est assez space comme truc
Et si tu met private à la place de protected, ça donne quoi ?
Marsh Posté le 02-05-2003 à 19:08:38
HelloWorld a écrit :
|
La franchement je sais pas, ca semble quand même bizarre que ca passe.
Citation : |
Je vois pas de quoi tu parles (oui je sais je sers à rien)
Citation : Autre question : si ma classe Classe2 utilise Classe1. |
Non. Ca marchera toujours, à moins que tu aie modifié la déclaration des méthodes de Classe1 utilisées par Classe2
Citation :
|
Ca veut juste dire que le compilo veut pas que tu laisse la possibilité qu'une exception parte dans la nature. Ca veut dire que dans toutes les méthodes où une telle exception peut partir, tu dois soit la catcher, soit déclarer que ta méthode la fait remonter (throws SocketException)
Citation : Et comment faire dans un bloc catch pour relancer une exception au lieu de faire System.err.println(e); ? |
throw e;
Citation :
|
Les APIs deprecated sont des methodes qui ont été declarées obsolètes. Regarde dans la doc de l'API ce qu'il est conseillé d'utiliser à la place. Les APIs deprecated marchent, mais en général elles posent des problèmes. Pour ton cas spécifique, je ne peux pas t'aider.
Citation : Merci à vous. |
De rien
Marsh Posté le 02-05-2003 à 19:11:28
Et mets ton post dans la subcat Java, tu auras plus de réponses
Marsh Posté le 18-05-2003 à 16:40:42
Bon, du temps s'est écoulé, reprenons.
L'histoire du protected static, je viens de retester car moi meme j'ai douté à la relecture de mon post ... et ca passe.
Fichier Test.java
Code :
|
Fichier Test2.java
Code :
|
Le tout dans le meme repertoire.
javac -classpath . Test.java
javac -classpath . Test2.java
java -classpath . Test2
tout se passe bien ...
Or y'a 2 bonnes raisons que ca fouarre : le final, et le protected.
L'histoire du castage en int d'un static final int, je n'ai pas su le reproduire.
C'est assez bizarre quand meme je trouve java. Un source compile ici, pas la ... ca semble etre du a differentes versions ...
Donc pour cette histoire (ici, j'ai remis le final et viré le cast, et ca marche là ou avant ailleurs ca marchait pas), j'avais une constante static final int CONSTANTE. Et quand, au sein meme de la classe ou elle etait declarée, je voulais l'utiliser pour faire par exemple :
int a = CONSTANTE;
il gueulait, pas content, obligé de faire :
int a = (int)CONSTANTE.
je me souviens plus de l'erreur. Mais bon ca, apparement, ca le fait plus, je sais pas trop d'ou ca sortait.
Sinon merci pour ton aide R3g, j'ai un peu mieux capté pourquoi des fois il fallait catcher des exceptions et des fois non.
Cette histoire de protected final, ca me laisse perplexe quand meme.
Quelqu'un d'autre peut tester vite fait pour voir si c'est moi qui dit n'imp ?
Marsh Posté le 18-05-2003 à 16:48:22
OUI, C'EST NORMAL
C'est assez peu connu, mais il y a 4 visibilités en java.
Pour le public et le private sont clair, je passe.
Le protected est différent du C++, puisqu'il permet l'accès de l'élément aux classes filles, mais aussi au classes du même package, ce qui est le cas ici.
La 4eme visibilité, friendly (qui est celle lorsque l'on ne précise pas de visibilité) rend un élément visible aux classes du package, et pas aux classes externes du package.
Marsh Posté le 18-05-2003 à 16:57:32
Ok tout s'éclairci.
J'ai appris le Java à partir d'un ou 2 sites "from C++ to Java" et ils disaient "private, protected are the same as in C++".
Ok pour ca donc.
Et une idée pour mon autre post sur TCP et READ ?
http://forum.hardware.fr/forum2.ph [...] h=&subcat=
Marsh Posté le 24-05-2003 à 01:10:53
HelloWorld a écrit : Le tout dans le meme repertoire. |
Je me demandais justement comment on transformait du code java en javabyte. Je crois bien que je viens de trouver.
Comme quoi, on trouve parfois sans poser la question.
Merci de cette info que tu m'as donner avant que je la demande. (lol)
Marsh Posté le 29-04-2003 à 18:26:54
Salut.
Donc je me suis mis au JAVA ce week end, et j'ai quelques coquilles.
Je viens de C++, et je suis surpris du comportement de protected/private en JAVA.
Pourquoi ce code passe-t-il ?
De même, j'ai eu une erreur "de déréférencement d'int" lorsque je l'initialisais avec une constante final. Il a fallu que je caste la constante en (int) ... (désolé, j'ai plus le source sous les yeux et j'arrive pas à le refaire).
Autre question : si ma classe Classe2 utilise Classe1.
Si je modifie Classe1, ke je la recompile, dois-je recompiler Classe2 ?
j'ai droit à l'erreur :
"unreported exception java.net.SocketException; must be caught or declared to be thrown"
j'ai essayé de jouer avec trows et tout ca, mais j'ai pas trouvé ce qu'il faut faire.
Et même, je ne comprend pas trop l'erreur. Quand on hérite de Thread, on n'a pas à s'embêter avec les exceptions que cette classe génère. Pourquoi là il le faut ?
Et comment faire dans un bloc catch pour relancer une exception au lieu de faire System.err.println(e); ?
Enfin, j'ai droit au message
"Note: UdpConnexion.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details."
D'après ce que j'ai compris, j'utilise des fonctions dont il est déconseillé de se servir.
Des fois -deprecation ne m'affiche rien.
Et sinon, je sais pas comment faire sauter ce message.
Par exemple :
il est dit dans la doc d'utiliser data = Str.getBytes();
Oui mais cette version effectue un encodage bizarre qui me ralonge mon data. Or je veux que mon data soit de la taille de Str.
Comment faire ?
Merci à vous.
Message édité par HelloWorld le 18-05-2003 à 16:27:30
---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite