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.
Code :
- public class Test
- {
- protected static int CONSTANTE = 10;
- }
- public class Test2
- {
- public static void main( String[] args )
- {
- Test.CONSTANTE = 20;
- }
- }
|
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 ?
Code :
- import java.net.*;
- public class Test extends DatagramSocket
- {
- }
|
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 :
Code :
- byte [] data = new byte [ Str.length() ];
- Str.getBytes( 0, Str.length(), data, 0 );
|
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