 <p>I'm assuming you left some out, is this the complete code?</p> <pre><code>public class House { private final House house; public static void main(String[] args) { house = new House("Robinsons"); house.setColor("Red"); } public House(String houseName) { // do something } public void setColor(String color) { // do something } } </code></pre> <p>If so, there are a number of problems with this.</p> <ol> <li>a final variable needs to be given a value right on declaration. And to answer your question, <strike>once a final variable is given a value (when declaring it), that will be the last time you can modify it.</strike> (refer to comments below, thanks exception1!).</li> <li>House is not a static variable, so it cannot be accessed from inside the <code>main</code> method, either make <code>house</code> a static variable, which I wouldn't recommend. Or declare an instance inside the <code>main</code> method before using it.</li> </ol>