06.03.2015 Views

Java Kitabı

JAva`nın çalışma mantığıyla başlayıp basitten gelişmişe iyi bir kaynak

JAva`nın çalışma mantığıyla başlayıp basitten gelişmişe iyi bir kaynak

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

class Kalem {<br />

}<br />

public class BosFinal {<br />

final int a = 0;<br />

final int b; // Bos final<br />

final Kalem k;<br />

// Blank final nesne alanı<br />

// Bos final alanlar ilk değerlerini yapılandırıcılarda içerisinde alırlar<br />

BosFinal() {<br />

k = new Kalem();<br />

b = 1; // bos final alanına ilk değeri ver<br />

}<br />

BosFinal(int x) {<br />

b = x; // bos final alanına ilk değeri ver<br />

k = new Kalem();<br />

}<br />

}<br />

public static void main(String[] args) {<br />

BosFinal bf = new BosFinal();<br />

}<br />

BoĢ final alanlara ilk değerleri yapılandırıcıların içerisinde verilemelidir; statik olan global alanlar boĢ<br />

final olma özelliğinden yararlanamazlar. ()<br />

5.6.4. final Yordamlar<br />

Türetilen alt sınıfların, türetildikleri ana sınıflar içerisindeki eriĢilebilir olan yordamları iptal edebildiklerini<br />

(override) biliyoruz. Ana sınıf içerisindeki bir yordamın, alt sınıflar tarafından iptal edilmesi istenmiyorsa,<br />

o yordamı final yaparak korunabilir. Kısacası final yordamlar iptal edilemezler. ()<br />

Örnek-5.22: FinalMetod.java ()<br />

class A {<br />

public final void ekranaYaz() {<br />

System.out.println("A.ekranaYaz()");<br />

}<br />

}<br />

class B extends A {<br />

public void ekranaYaz() {<br />

System.out.println("B.ekranaYaz()");<br />

}<br />

}<br />

A sınıfına ait ekranaYaz() yordamı, A sınıfından türetilmiĢ B sınıfının ekranaYaz() yordamı<br />

tarafından iptal edilemez (overriding). FinalMetod.java örneğini derlemeye çalıĢtığımızda aĢağıdaki hata<br />

mesajını alırız: ()<br />

132

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!