Déclarant objet final en java

Quelqu'un peut-il préciser la signification du code ci-dessous.

class A
{
    int i = 10;

    public void setI(int b)
    {
        i = b;
    }

    public int getI()
    {
        return i;
    }
}

class Test
{    
    public static void main(String args[]) throws Throwable
    { 
        final A ob = new A();
        ob.setI(10);
        System.out.println(ob.getI());
    }
}

L'objet A est déclarée comme final, mais je peux changer la valeur de cet objet est variable d'instance et aussi retrive la valeur mise à jour. Alors, quelles sont la signification de la déclaration d'un objet final.
Je suis conscient sur la déclaration de type de données primitif final, ce qui fait que la variable constante.

OriginalL'auteur RickDavis | 2012-06-29