public final class Foo { private Object f1 = new Object(); // Can be final but unused private Object f2; // Can be final private Object f3; // Cannot be final private Object f4; // cannot private Object f5 = new Object(); // cannot public Foo() { f2 = new Object(); try { f3 = "test"; } catch (Exception e) { } f5 = new Object(); } public Foo(int i) { f2 = new Object(); f4 = new Object(); f5 = new Object(); } public Object getF2(){ return f2; } }