(JAVA) Pourquoi ca compile ?
Bonjour,
Je me pose la question suivante, pourquoi ce code peut être compilé ?
(JavaSE-10)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
public class Panneau extends JPanel{
private static final long serialVersionUID = -6727483609391796566L;
{
int x=0;
System.out.println("Ne devrait pas compiler ?"+"x= "+x);
}
public Panneau(){
}
@Override
public void paintComponent(Graphics g) {
int y1=getHeight();
int x1=getWidth();
System.out.println("x1="+x1+" y1="+y1);
g.drawOval(x1/4,y1/4, x1/2,y1/2);
}
} |
Code:
1 2 3 4
|
int x=0;
System.out.println("Ne devrait pas compiler ?"+"x= "+x); |
C'est cette partie qui m'interroge, théoriquement: Le System.out.println, ne devrait pas compiler (lancé hors de toute méthode)
Celui-ci ne compile pas : (comme attendu)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
import java.awt.Graphics;
import javax.swing.JPanel;
public class Panneau extends JPanel{
private static final long serialVersionUID = -6727483609391796566L;
int x=0;
System.out.println("Ne compile pas"+"x= "+x);
public Panneau(){
}
@Override
public void paintComponent(Graphics g) {
int y1=getHeight();
int x1=getWidth();
System.out.println("x1="+x1+" y1="+y1);
g.drawOval(x1/4,y1/4, x1/2,y1/2);
}
} |
(J'ai supprimé les accolades du bloc en début de classe)
Merci pour vos réponses.
(JAVA) Pourquoi ca compile ?
Bonjour,
Je ne connaissais pas les blocs d'initialisation.
Maintenant si et grâce à vous ! :)
Merci pour vos réponses rapides.
Cordialement