Static si Final

class Obiect {
    public final static int NR_NOROCOS = 79;
     
    public String nume1;
    public static String descriere;
     
    public static int contorul = 0;
     
    public int id;

	public String nume;
     
    public Obiect() {
         
        id = contorul;
         
        contorul++;
    }
     
    public void afiseazaNume() {
        System.out.println("Obiect id: " + id + ", " + descriere + ": " + nume1);
    }
     
    public static void afiseazaInfo() {
        System.out.println(descriere);
        // Nu va functiona: System.out.println(nume);
    }
}
 
 
public class Application {
 
    public static void main(String[] args) {
         
        Obiect.descriere = "Eu sunt un obiect";
         
        Obiect.afiseazaInfo();
         
        System.out.println("Inainte de crearea obiectelor, contorul este: " + Obiect.contorul);
         
        Obiect obiect1 = new Obiect();
        Obiect obiect2 = new Obiect();
         
        System.out.println("Dupa crearea obiectelor, contorul este: " + Obiect.contorul);
         
        obiect1.nume1 = "Popescu";
        obiect2.nume1 = "Maria";
         
        obiect1.afiseazaNume();
        obiect2.afiseazaNume();
         
        System.out.println(Math.PI);
         
        System.out.println(Obiect.NR_NOROCOS);
    }
 
}
Output:
Eu sunt un obiect
Inainte de crearea obiectelor, contorul este: 0
Dupa crearea obiectelor, contorul este: 2
Obiect id: 0, Eu sunt un obiect: Popescu
Obiect id: 1, Eu sunt un obiect: Maria
3.141592653589793
79