Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

NİŞANTAŞI ÜNİVERSİTESİ

Benzer bir sunumlar


... konulu sunumlar: "NİŞANTAŞI ÜNİVERSİTESİ"— Sunum transkripti:

1 NİŞANTAŞI ÜNİVERSİTESİ
NESNEye yönelİk PROGRAMLAMA SOYUT SINIFLAR, İSTİSNALAR NİŞANTAŞI ÜNİVERSİTESİ © İktisadi, İdari ve Sosyal Bilimler Fakültesi iisbf.nisantasi.edu.tr

2 SOYUT SINIFLAR (ABSTRACT CLASSES)
Soyut sınıflara aslında eksik sınıflar diyebiliriz. Sadece kendisinde türetilmesi muhtemel alt sınıflar için süper sınıf vazifesi görürler. Bu sınıflara ait bir nesne oluşturulamaz ve bu sınıfta oluşturulan metotlardan en az bir tanesinin gövdesi yazılamaz. Bu metodun sadece aldığı parametreler ve dönüş tipi yazılır. Bu metoda da soyut metot denilir.

3 SOYUT SINIFLAR (ABSTRACT CLASSES)
Gövdesi olan – işlevi yürütecek olan- metodu soyut sınıftan oluşan alt sınıfların kendilerinin oluşturulması beklenir. Bu sınıfların oluşturulmasındaki en büyük etken olarak birleştirici rol üstlenmelerini gösterebiliriz. Soyut tipteki sınıf ve metotları oluşturmak için abstract deyimi kullanılır.

4 SOYUT SINIF KISITLAMALARI
Soyut sınıftan bir başka soyut sınıf kalıtım yolu ile türetilebilir. Soyut metodu olmayan sınıflar soyut sınıf olamazlar. Herhangi bir sınıfın yapılandırıcı ve static metotları soyut olarak tanımlanamazlar. Soyut sınıftan türeyen alt sınıflar; türedikleri soyut sınıfına ait soyut metodun gövdesini yazmak zorundadırlar.

5 ÖRNEK-1 Şekiller isimli soyut sınıfı yazarak, kare ve dikdörtgen sınıflarını bu soyut sınıftan türetiniz. Soyut sınıfımızın sadece alan hesaplayan soyut bir metodu olsun.

6 ÖRNEK - 1

7 ÖRNEK - 1

8 SOYUT SINIFLAR (ABSTRACT CLASSES)
Final Sınıf ve Metotlar İçin Uyarı: Final sözcüğü ile tanımlanan sınıflardan alt sınıflar türetilemez. Final sözcüğü ile tanımlanan metotlar alt sınıflarda override edilemez. (private ve static olarak tanımlanan metotlar için de aynı durum söz konusudur.) Final sözcüğü ile tanımlanan bir sınıfa ait metotlar da override edilemez.

9 İSTİSNALAR(EXCEPTIONS)
İstisna: İşlerin kontrolden çıkarak önceden beklenmeyen durumların ortaya çıkmasıdır. Kestirilemeyen bir nedenden ötürü hazırlanan uygulamaların beklenilen uygulama akışı içerisinde çalışmamasıdır. Uygulamalardan 2 şey bekleriz; Doğru çalışma yani beklenen görevleri yerine getirme. Hatalara karşı dayanıklı olmaları.

10 İSTİSNALAR(EXCEPTIONS)
Bir uygulamanın geliştirilmesi sırasında karşılaşılabilecek hatalar: Sentaks Hataları: java dilbilgisi kurallarına uyulmaması sonucu sentaks hataları oluşur. Mantık Hataları: Uygulama içerisinde göremediğimiz, uygulamanın çalışmasına engel olmayan ancak beklenen değerlerin alınmasına engel olan hatalar. Çalışma Zamanı Hataları: Uygulamanın çalıştırılmasından sonra alınan hatalar.

11 İSTİSNALAR(EXCEPTIONS)
ÇALIŞMA ZAMANI HATALARI Bir uygulama yazılır ve çalıştırılır ancak işlemci «ben bu işi yapamayacağım, burada benim anlayamadığım-çözemediğim- komut satırları var» der. İşte bu tarz hatalar çalışma zamanı hatalarıdır (run-time errors). Bu hataların en kötü tarafı yakalanıp düzeltilmeleri zordur. Uygulama böyle bir hata ile karşılaştığı anda sonlanmaktadır.

12 İSTİSNALAR(EXCEPTIONS)
Uygulama sonlanınca ne kaybederiz? Örneğin bir muhasebe uygulaması yazdınız ama hata ayıklamadınız. Sonra o uygulamayı kullanan X şirketinin muhasebecisi size güvenerek çeşitli borç ödemeleri yaptı. Yani kasadan para çıkışı yaptı. Ancak sızın uygulama­nız muhasebe ekranında bu paralan ödediğini söylerken belirlenemeyen nedenler­le kasadan düşmedi. Şirket yönetimi kasasına baktığında Y lira görmekte ancak he­sapları incelediğinde kasada bulunan gerçek miktar sizin uygulamanızın söyledi­ğinden düşük çıkmakta. Yandı muhasebeci. Çünkü uygulamanız bir hatadan dola­yı borç ödemelerini kasadan düşmemiş ve çalışmaya devam etmiştir.

13 İSTİSNALAR(EXCEPTIONS)
Bu durum ne­lerden kaynaklanabilir? Çalıştırılmak istenen dosya yerinde olmayabilir. Uygulama­ya beklenmedik değerler girilmiş olabilir. Çalışma esnasında ağ bağlantısı kopmuş olabilir. Çalıştırılmak istenen dosya başkası tarafından kullanılıyor olabilir, vb…

14 İSTİSNALAR(EXCEPTIONS)
Javada istisna işleme konusunda beş anahtar sözcük karşımıza çıkmakta­dır: try catch throw, throws, finally.

15 İSTİSNALAR(EXCEPTIONS)
İstisnalar için izlenen kod, bir try bloğu içerisin­de tutulur. Bu bloğun anlamı "bu kodu çalıştır ve istisna oluşacak mı görüdür. Eğer try bloğu içerisinde bir istisna meydana gelirse, bir istisna nesnesi yaratılır ve kod içerisine atılır. Programımız bu istisnayı catch ifadesi ile yakalayabilir ve işleyebilir. Her catch bloğu ne tipte bir istisnayı yakalayabileceğini belirler ve içerisinde o tip­te istisnayı işlemek üzere bir istisna işleyici bulunur. Eğer yazılımcı bir istisnayı ken­disi fırlatmak istiyorsa throw ifadesini kullanır. Bir metottan fırlatılan her istisna bir throws kalıbı ile belirtilir, finally ile belirtilen bloğun içindeki kod, istisna oluşsun oluşmasın kesinlikle çalışması gereken koddur. Bazı kodların her ne olursa olsun ça­lışması gerekiyorsa finally bloğunun içinde yer almalıdır.

16 ÖRNEK-2 Bir sonraki slaytta yer alan programda bir dizi oluşturulup, diziye ait olmayan bir elemana ulaşılmaya çalışılmıştır. Dolayısıyla çalışma zamanı hatası alınmıştır.

17 ÖRNEK-2

18 TRY-CATCH BLOKLARI İstisnaların oluşma aşamalarını-çerçevesini incelersek: Bir istida meydana geldiğinde ilk olarak bir nesne oluşturulmaktadır. Sonrasında bu istisnayı yakalamak için catch bloğu olup olmadığı kontrol edilir. Şayet ilgili catch bloğu var ise uygulama sonlanmaz bu catch bloğundan devam eder. Beklenen catch bloğu yok ise istisna; istisnanın meydana geldiği komutu çağıran satıra istisna nesnesi fırlatılır. Şayet söz konusu istisnanın olduğu komutu çağıran komut satırında ilgili istisna­ya ait catch bloğu var ise uygulama bu catch bloğundan devam eder. Burada da catch bloğu yok ise istisna oluşturulduğu metodu çağıran bir üst me­toda fırlatılır. Catch bloğu olup olmadığı kontrol edilir. Varsa uygulama bu alandan devam eder yoksa istisna bir üst metoda fırlatılır. Bu işlemler uygulamada kullanı­lan metot sayısına bağlı olarak main metoda kadar devam eder. Süreç boyunca ilgili catch bloğu varsa oradan devam eder yoksa uygulama sonlanır.

19 ÖRNEK-3 Bir önceki örnekte çalışma zamanı hatası alınan kısma ilişkin try-catch bloğu oluşturalım.

20 ÖRNEK-3

21 ÖRNEK-4

22 ÖRNEK-4 Görüldüğü gibi uygulamamızda hata yakalama istisna2 metodunda gerçekleştirilmiş, sonrasında program main metoda kadar sırasıyla giderek sonlanmıştır.

23 ÖRNEK-5

24 ÖRNEK-5 Görüldüğü gibi uygulamamız önce istisna2 metoduna kadar çalışır. Hata satırına kadar gelir ve durur, hata, try-catch bloğunu ilk olarak kendisinin çağrıldığı metot­ta arar, bulamayınca bir üst metoda yani kendisini ilk çağıran metoda bakar. try-catch bloğunu istisna1 metodunda bulan uygulama çalışmasına buradan yukarıya doğru devam eder. Görüldüğü gibi hata bloğunda hatadan sonraki kodlar çalıştırılmamış­tır.

25 ÖRNEK-6

26 ÖRNEK-6 Uygulama istisna2 metoduna kadar kodları çalıştırıp, yazdırmış ve hata satırında çalışmayı durdurmuştur. Hatayı try-catch bloğunda aramaya başlamış, ancak istisna2 metodunda bulamayıp daha sonra istisna2 metodunu çağıran istisna1 metoduna bakmış, burada da bulamayınca, istisna1 metodunu çağıran main metoda bakarak, main metottaki try-catch bloğundan çalışmaya devam etmiştir. Hata sonrası istisna2 ve istisna1 metodundaki komutlar çalıştırılmamıştır.

27 İSTİSNA SINIFLARI İstisnaların yakalanarak ele alındığı sınıflardır.
Bu sınıflar en süper sınıf olan Object sınıfından türetilmiş THROWABLE sınıfından türetilmektedirler. Throwable sınıfının alt sınıfları iki başlık altında toplanmaktadır. Error sınıfları Sistem kaynaklı hatalar meydana geldiğinde çalıştırılmaktadır. Böyle durumlar genelde kullanıcıya bir uyarı ve uygulama sonlanması şeklinde meydana gelmektedir. Yani yazılımcının yapacağı çok fazla bir şey bulunmamaktadır. Exception sınıfları  Exception sınıfları ise çalışma zamanı hatalarını ele almaktadır. Bu hatalar çoğunlukla uygulama geliştirme esnasında yapılan hatalardan kaynaklanmaktadır.

28 KONTROLLÜ İSTİSNALAR Derleyicinin yazılımcıyı try-catch blokları kullanmaya zorladığı istisna şeklidir. Yakalanıp - ayıklanması yüksek önceliğe sahip kodların yazılımcı tarafından incelenmesini sağlamaktadır. Uygulamanın herhangi bir noktasından bir metot çağırıldığında, derleyici çağrılan metodun tanımını kontrol eder. Bu metotta kontrollü bir istisna tanımlı ise derleyici metodun çağrıldığı yerin kod bloğunda bu istisna için bir adet try-catch bloğunun tanımlı olmasını beklemektedir. O blokta try-catch mekanizması tanımlanmadan uygulamanın derlenmesine izin vermemektedir.

29 KONTROLSÜZ İSTİSNALAR
Derleyicinin try-catch bloklarını kollanmaya zorlamadığı istisna şeklidir. Yani derleyici herhangi bir metoda ait tanımlı try-catch bloğu olup olmadığını önemsemez. Bu istisnalar genelde yazılımcının uygulama içerisinde yaptığı çeşitli düzeltilebilir hatalar nedeniyle oluştuğundan derleyici bir zorlamada bulunmaz.

30 KayNAKlar Kim Korkar JAVA’dan-Temel Java, Alper AKALIN, Abaküs Yayınevi, Nisan 2015


"NİŞANTAŞI ÜNİVERSİTESİ" indir ppt

Benzer bir sunumlar


Google Reklamları