есть ли разница между этими двумя инициализациями конечной переменной value
?
class Test {
final int value = 7;
Test() {}
}
а также
class Test {
final int value;
Test() {
value = 7;
}
}
--
EDIT: более сложный пример, включающий подклассы. В этом случае на стандартный вывод печатается «0», но 7 печатается, если я назначаю значение напрямую.
import javax.swing.*;
import java.beans.PropertyChangeListener;
class TestBox extends JCheckBox {
final int value;
public TestBox() {
value = 7;
}
public void addPropertyChangeListener(PropertyChangeListener l) {
System.out.println(value);
super.addPropertyChangeListener(l);
}
public static void main(String... args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.setContentPane(panel);
panel.add(new TestBox());
frame.pack();
frame.setVisible(true);
}
}
addPropertyChangeListener()
? - person Viruzzo   schedule 02.12.2011