devinette (pour s'amuser) [java] - Programmation
Marsh Posté le 21-05-2001 à 13:02:32
Chez moi javac n'aime pas:
Code :
|
Ni b_, ni sucharge ne sont statiques.
Marsh Posté le 21-05-2001 à 13:16:59
"deviner, sans l'exécuter...."
donc c'est normal que javac n'en veux pas il faut juste le lire et deviner la sortie...
!il faut précompiler dans la tête!
Marsh Posté le 21-05-2001 à 13:19:01
Ben oui mais si le compilo n'en veut pas, c'est que c'est pas du Java
Marsh Posté le 21-05-2001 à 13:58:12
et non c'est pas ça non plus
allez je vous aide mais moi non plus j'avais pas trouvé
1. L’ordre de déclaration de la méthode static {} vis à vis des attributs statiques est important.
2. Si un constructeur appel une méthode qui est surchargé, c'est la version surchargée qui est exécuté (contrairement au C++). Attention, l'instance dérivée n'est pas encore construite ! La méthode surchargée ne peut utiliser que les attributs hérités. Il ne faudrait pas appeler de méthode non final dans un constructeur.
3. L'initialisation des attributs s'effectue juste après l'appel du super() et avant le corps du constructeur.
4. L'ordre de déclaration des attributs est important.
Marsh Posté le 21-05-2001 à 14:28:51
ouais et tant que t'y es, essaie de le mettre en page un peu mieu, parce que là c illisible ton truc.
et c quoi le but de ton jeu? on t'as posé une colle, et tu veux nous faire repondre parce que tu trouves pas ?
Marsh Posté le 21-05-2001 à 14:30:56
G trouvé!!!!
(mais G triché)
Très intéressant comme exemple
Marsh Posté le 21-05-2001 à 14:57:21
Le code correct est:
Code :
|
[edit]--Message édité par Verdoux--[/edit]
Marsh Posté le 21-05-2001 à 15:06:12
c'est exact parallele,
vous êtes lent !
non j'avais la réponse mais je trouvais l'astuce amusante.
Marsh Posté le 21-05-2001 à 15:12:32
--------------
petoulouchi a écrit
ouais et tant que t'y es, essaie de le mettre en page un peu mieu, parce que là c illisible ton truc.
et c quoi le but de ton jeu? on t'as posé une colle, et tu veux nous faire repondre parce que tu trouves pas ?
------------------------
he ! quelle arogance ! j'aporte un peu de gaité à ce forum et toi tu le prend mal,
j'ai pas besoin de vous pour répondre à une colle.
je glande au chomdu et en pendant ce temps j'étudie java, je tombe sur des truc amusant et educatif et je vous en fait profiter, c'est tout.
y a rien qui t'oblige à lire mon poste ! c'est un forum ici c'est pas c'est wall-street
Marsh Posté le 21-05-2001 à 15:12:56
heu pour le 'vous etes lents', ça veut dire que tu te consideres ultra rapide? non parce que nous aussi on peut te sortir des colles, et tu seras lent aussi.
C juste peut etre que c'etait pas super interessant ...
Marsh Posté le 21-05-2001 à 15:16:52
pour petoulachi qui croit qu'on a besoin de lui pour faire ses devoir :
http://perso.club-internet.fr/ppra [...] ction.html
sur ce site y la réponse et le développement en détail du problème de hierachie des methode etc....
-moi çà fait des années que j'ai plus de devoir.......snif.
Marsh Posté le 21-05-2001 à 15:21:15
N'empêche que le code donné était faux. Un bloc statique ne peut utiliser un membre ou une méthode non statiques.
Marsh Posté le 21-05-2001 à 15:28:54
oui surtout que je pense pas avoir posé de post pour m'aider a faire mes devoir... enfin ...
Marsh Posté le 21-05-2001 à 16:15:43
ok ok, y avait bien une faute mais personne ne devais compiler ce truc.....c'était un test mental... donc vous avez presque tous triché.
enfin c'est bien...vous avez trouvée.
Marsh Posté le 21-05-2001 à 12:42:12
Il faut deviner, sans l'exécuter, le mot de passe affiché par ce programme.
class Str
{ Str(char x)
{ System.out.print(x); }
};
class Base
{ static Str s=new Str('P');
int a_=methode();
final int b_;
static
{ b_=surcharge();
}
Base()
{ System.out.print ('E');
}
int methode()
{ System.out.print ('L');
return 0;
}
int surcharge()
{ System.out.print ('S');
return 1;
}
static
{ System.out.print ('A');
}
static Str t;
static
{ t=new Str('R');
}
}
class Derive extends Base
{ int c_=surcharge();
Derive()
{ super();
System.out.print ('E');
}
int surcharge()
{ System.out.print ('L');
return 2;
}
static
{ System.out.print ('A');
}
}
public class Start
{ public static void main(String[] argv)
{ new Derive();
System.out.flush();
}
}