Eğer metodun başına final yazarsak, override edemeyiz.
Eğer değişkenin başına final yazarsak, değişkene değer atamalıyız ve daha sonra da değişkenin değerini değiştiremeyiz.
Başlatıcılarında değer atamamızda sorun yok.
Yapıcı metotta değer atamamızda da sorun yok.
Ama bir değer atamamışsak gümleriz. Bakınız aşağıdaki resime:
STATIC FINAL nasıl olacak peki?
Eeee değişken static ise başlatıcının da static ifadesi içermesi gerekiyor. Statik olduğu içinde yapıcı metotda değer atayamayız.
Olması gereken:
package primitive;
public class Main {
// statik olduğu için constructorda da başlatılamaz.
static final int sayi = 10;
// bu olur du ama static final degisken olsaydı
static final String isim;
static
{
isim = "soyadi";
}
public Main() {
}
public static void main(String[] args) { }
}