BİL-141 Bilgisayar Programlama I (Java)

Benzer belgeler
NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10

BİL132 Bilgisayar Programlama II

Örnek 1: Programı yazın ve çalıştırın.

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9. UYGULAMA

BİL-141 Bilgisayar Programlama I (Java)

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 8. Yrd.Doç.Dr.Hacer Karacan

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 6. UYGULAMA

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

// hataları işaret eden referans

Java da İşleçler, Ders #3 (4 Kasım 2009)

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com

Sunum İçeriği. Programlamaya Giriş

Nesne Yönelimli Programlama

BIL101 07/11/2012 Lab5 Programlama Sorulari

Karşılaştırma İşlemleri ve Koşullu İfadeler

Ders - 7 while döngüsü

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Nesne Yönelimli Programlama

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

BİL-141 Bilgisayar Programlama I (Java)

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Temel Veri Türü İşlemleri

EMT2226 Nesne Yönelimli Programlamaya Giriş

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

Programlama Dillerinde Kullanılan Veri Tipleri

JAVA DA İSTİSNALAR VE DOSYA İŞLEMLERİ. Yrd. Doç.Dr. İlhan AYDIN

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

Nesne Yönelimli Programlama

D İ Z İ L E R A R R A Y S

Klavyeden Basit Giriş/Çıkış İşlemleri

BİL-141 Bilgisayar Programlama I (Java)

3.Hafta. . Kontrol Deyimleri/İfadeler

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

M.ilkucar MAKU MYO 1

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken:

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

BASİT VERİ TÜRLERİ, STRİNGLER, VE KONSOL GİRİŞ/ÇIKIŞ

BM-209 Nesne Yönelimli Programlama

Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir.

İstisnalar (Exceptions) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 8 1

Programlama Dili Prensipleri. Lab Notları 1

Calistir diye normal bir java classı ekleyelim.aynı pakete ekleyelim.public ve main metodu ekleyelim.

String (Dizgi) İşlemleri

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

JAVA PROGRAMLAMAYA GİRİŞ

HSancak Nesne Tabanlı Programlama I Ders Notları

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 11

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Merge (Bireşim) Algoritmayı önce bir örnek üzerinde açıklayalım.

DÖNGÜLER BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA DENEY-4 FÖYÜ GİRİŞ LABORATUARI.

ATATÜRK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BIM 205 GÖRSEL PROGRAMLAMA GÜZ DÖNEMİ ÖDEV-1

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

Programlama Dilleri 3

İLKEL VERİ TİPLERİ, STRINGLER VE KONSOL G/Ç

BİL-141 Bilgisayar Programlama I (Java)

Arasınav Örnek Soruları Bahar 2018

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.


JAVADA DİZİ İŞLEMLERİ

İş Parçacıkları Thread(s)

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

RSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Java String İşlemleri

7. HAFTA. Erişim Belirleyiciler

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

HSancak Nesne Tabanlı Programlama I Ders Notları

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

1. Her marka için 3 aylık satış toplamı nedir? (Tablodaki satır toplamları)

Program Hatalarını Çözümleme

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

Programlama Dili Prensipleri. Lab Notları 4

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

Akış Konrol Mekanizmaları

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals. Module 2:Server Side Internet Programming

BİL-141 Bilgisayar Programlama I (Java)

Nesne Yönelimli Programlama

Soru 1: Fahrenheit cinsinden verilen sıcaklığı Kelvin'e çeviren bir program yazınız. Aşağıdaki dönüşüm formülünü kullanabilirsiniz:

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Transkript:

1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu, M. Özbayoğlu, M. Erten, O. Ergin kitabı kullanılarak hazırlanmıştır. Konular Kural Dışı Durumlar ve catch Blokları ve throw Komutu Exception Sınıfı Kural Dışı Durum Sınıfı Tanımlama Bir Bloğuyla Çok Sayıda catch Kullanımı Kural Dışı Durum Sınıfı Kullanımı İç İçe - catch Blokları finally Bloğu

2 Kural Dışı Durumlar Programlar genellikle girişlerin kullanıcı tarafından uygun gireleceği veya çalışmasının normal şekilde tamamlanacağı varsayılarak yazılır. Java da program istenmeyen bir durum oluştuğunda durumu dışarıya bildirir. Programcı Java da bulunan istenmeyen durum çözme araçlarını kullanarak daha hatasız bir program yazabilir. Bu tür araçların kullanımı programı daha anlaşılabilir yapar ve hata denetimini kolaylaştırır. 3 Kural Dışı Durumlar Örnekte iki sayıyı birbirine bölen program verilmiştir. import java.util.scanner; public class Bolme public static void main(string [] args) String yanit; do System.out.print("Bolunecek sayi:\t"); Scanner klavye = new Scanner(System.in); int a = klavye.nextint(); System.out.print("Bolen sayi:\t"); int b = klavye.nextint(); int c = a / b; System.out.println(a + " / " + b + " = " + c); System.out.print("Bir daha denemek ister misin? (e/h) "); yanit = klavye.next(); while ((yanit.equals("e")) (yanit.equals("e"))); 4

3 Kural Dışı Durumlar Örnekte farklı değerler için bölme sonuçları verilmiştir. Çıktı: Bolunecek sayi: 14 Bolen sayi: 6 14 / 6 = 2 Bir daha denemek ister misin? (e/h) h Çıktı: Bolunecek sayi: 14 Bolen sayi: 0 Exception in thread main java.lang.artihmeticexception: / by zero at Bolme.main(Bolme.java:13) Press any key to continue... Yukarıdaki mesaj kural dışı bir durumla karşılaşıldığını ve program içinde çözümünün olmadığını bildirir. 5 Kural Dışı Durumlar Örnek: İki sayıyı birbirine bölen programın düzeltilmiş hali. import java.util.scanner; public class Bolme2 public static void main(string [] args) String yanit; do System.out.print("Bolunecek sayi:\t"); Scanner klavye = new Scanner(System.in); int a = klavye.nextint(); System.out.print("Bolen sayi:\t"); int b = klavye.nextint(); if (b == 0) System.out.println("Bolen Sifir Olamaz!"); else int c = a / b; System.out.println(a + " / " + b + " = " + c); 6

4 Kural Dışı Durumlar Örnek: İki sayıyı birbirine bölen programın düzeltilmiş hali - devam System.out.print("Bir daha denemek ister misin? (e/h) "); yanit = klavye.next(); while ((yanit.equals("e")) (yanit.equals("e"))); Çıktı: Bolunecek sayi: 14 Bolen sayi: 0 Bolen sifir olamaz! Bir daha denemek ister misin? (e/h) 7 Kural Dışı Durumlar Örnek: Java araçları kullanılarak bölme programın düzeltilmiş hali. import java.util.scanner; public class Bolme3 public static void main(string [] args) String yanit; do Scanner klavye = new Scanner(System.in); System.out.print("Bolunecek sayi:\t"); int a = klavye.nextint(); System.out.print("Bolen sayi:\t"); int b = klavye.nextint(); if (b == 0) throw new Exception("Kural Disi Durum: Bolen Sifir!"); int c = a / b; System.out.println(a + " / " + b + " = " + c); 8

5 Kural Dışı Durumlar Örnek: Java araçları kullanılarak bölme programın düzeltilmiş hali. catch (Exception ozeldurum) System.out.println("Bolen Sifir Olamaz!"); System.out.print("Bir daha denemek ister misin? (e/h) "); yanit = klavye.next(); while ((yanit.equals("e")) (yanit.equals("e"))); bloğu herhangi bir hata ile karşılaşınca catch bloğuna geçilir. catch bloğu içinde Hata türüne uygun mesaj yazıdırılır. 9 Konular Kural Dışı Durumlar ve catch Blokları ve throw Komutu Exception Sınıfı Kural Dışı Durum Sınıfı Tanımlama Bir Bloğuyla Çok Sayıda catch Kullanımı Kural Dışı Durum Sınıfı Kullanımı İç İçe - catch Blokları finally Bloğu

6 ve catch Blokları ve throw Komutu Java da istenmeyen durumların çözümünde throw-catch üçlüsü kullanılır. bir kod bloğunun denenmesi için kullanılır. Denenecek program Eğer bloğunda istenmeyen bir durum oluşursa throw ile dışarıya bildirilir. Denenecek program Beklenmeyen durumun bildirilmesi satır (throw) Programın devamı 11 ve catch Blokları ve throw Komutu throw new Exception( kural Dışı durum: Bolen sıfır! ); Java throw komutunu görünce hemen catch bloğunu çağırır. Yukarıdaki satır aşağıdaki gibi de yazılabilir. Exception ozeldurum = new Exception( kural Dışı durum: Bolen sıfır! ); throw ozeldurum; Catch bloğu hem yakalanacak kural dışı durumu belirler ve blok içinde işlem yapılmasını sağlar. 12

7 Konular Kural Dışı Durumlar ve catch Blokları ve throw Komutu Exception Sınıfı Kural Dışı Durum Sınıfı Tanımlama Bir Bloğuyla Çok Sayıda catch Kullanımı Kural Dışı Durum Sınıfı Kullanımı İç İçe - catch Blokları finally Bloğu Exception Sınıfı Exception sınıf Java da kural dışı durumların belirlenmesi için kullanılan Java tarafından tanımlanmış bir sınıftır. Exception nesnesi kural dışı durumu ifade eden bilgiyi String olarak alır. Aşağıdaki örnekte throw ile yeni bir Exception nesne kurucusu çalıştırılmıştır. Exception ozeldurum = new Exception( Kural Disi Durum: Bolen Sifir! ); throw ozeldurum; catch bloğuyla atanmış String ifade getmessage() metoduyla alınmıştır. catch System.out.println( Bolen Sifir olamaz! ) 14

8 Exception Sınıfı Java da bazı kural dışı durumlar için tanımlamalar yapılmış durumdadır. Bunlar doğrudan kullanılabilir. ArithmeticException IOException ClassNotFoundException FileNotFoundException Bu tür kural dışı durum yakalandığında getmessage() mesajıyla String ileti alınabilir. ArrayIndexOutOfBoundsException gibi durumlar programda mantık hatasını yansıtır ve -catch ile yakalanmasına gerek yoktur. 15 Konular Kural Dışı Durumlar ve catch Blokları ve throw Komutu Exception Sınıfı Kural Dışı Durum Sınıfı Tanımlama Bir Bloğuyla Çok Sayıda catch Kullanımı Kural Dışı Durum Sınıfı Kullanımı İç İçe - catch Blokları finally Bloğu

9 Kural Dışı Durum Sınıfı Tanımlama Java da programcı kendi kural dışı sınıfını Exception sınıfından türetebilir. Yeni kural dışı durum oluştururken kurucular en önemli kısımdır. public class SifiraBolmeHatasi extends Exception // Parametre almadan çalışır public SifiraBolmeHatasi() super("bolen Sifir!"); // Parametre alarak çalışır public SifiraBolmeHatasi(String ileti) super(ileti); 17 Kural Dışı Durum Sınıfı Tanımlama Örnek - SifiraBolmeHatasi sınıfının kullanımı import java.util.scanner; public class Bolme4 public static void main(string [] args) String yanit; do Scanner klavye = new Scanner(System.in); System.out.print("Bolunecek sayi:\t"); int a = klavye.nextint(); System.out.print("Bolen sayi:\t"); int b = klavye.nextint(); if (b == 0) throw new SifiraBolmeHatasi("Bolen Sifir!"); int c = a / b; System.out.println(a + " / " + b + " = " + c); 18

10 Kural Dışı Durum Sınıfı Tanımlama Örnek - SifiraBolmeHatasi sınıfının kullanımı - devam catch (SifiraBolmeHatasi ozeldurum) System.out.println("Bolen Sifir Olamaz!"); System.out.print("Bir daha denemek ister misin? (e/h) "); yanit = klavye.next(); while ((yanit.equals("e")) (yanit.equals("e"))); 19 Konular Kural Dışı Durumlar ve catch Blokları ve throw Komutu Exception Sınıfı Kural Dışı Durum Sınıfı Tanımlama Bir Bloğuyla Çok Sayıda catch Kullanımı Kural Dışı Durum Sınıfı Kullanımı İç İçe - catch Blokları finally Bloğu

11 Bir Bloğuyla Çok Sayıda catch Kullanımı Java da bir bloğuyla birden fazla catch bloğu birlikte kullanılabilir. Java da istenmeyen durum oluştuğunda uygun ilk catch bloğunu çalıştırır. import java.util.scanner; public class Bolme5 public static void main(string [] args) String yanit; do Scanner sc = new Scanner(System.in); SifiraBolmeHatasi sifir=new SifiraBolmeHatasi("Bolen Sifir!"); BireBolmeHatasi bir = new BireBolmeHatasi("Bolen Bir!"); EksiBireBolmeHatasi eksibir=new EksiBireBolmeHatasi("Bolen Eksi Bir!"); System.out.print("Bolunecek sayi:\t"); int a = klavye.nextint(); System.out.print("Bolen sayi:\t"); int b = klavye.nextint(); 21 Bir Bloğuyla Çok Sayıda catch Kullanımı Örnek - Birden fazla catch bloğu - devam if (b == 0) throw sifir; else if (b == 1) throw bir; else if (b == -1) throw eksibir; int c = a / b; System.out.println(a + " / " + b + " = " + c); catch (SifiraBolmeHatasi ozeldurum) System.out.println("Bolen Sifir Olamaz!"); catch (BireBolmeHatasi ozeldurum) System.out.println("Bolen Bir; Sonuc Sayinin Kendisi!"); 22

12 Bir Bloğuyla Çok Sayıda catch Kullanımı Örnek - Birden fazla catch bloğu - devam catch (EksiBireBolmeHatasi ozeldurum) System.out.println("Bolen Eksi Bir; Sonuc Sayinin Eksisi!"); catch (Exception ozeldurum) System.out.println("Genel Hata Olustu"); System.out.print("Bir daha denemek ister misin? (e/h) "); yanit = klavye.next(); while ((yanit.equals("e")) (yanit.equals("e"))); 23 Konular Kural Dışı Durumlar ve catch Blokları ve throw Komutu Exception Sınıfı Kural Dışı Durum Sınıfı Tanımlama Bir Bloğuyla Çok Sayıda catch Kullanımı Kural Dışı Durum Sınıfı Kullanımı İç İçe - catch Blokları finally Bloğu

13 Kural Dışı Durum Sınıfı Kullanımı Bazı durumlarda oluşan kural dışı durumun yakalanması metodun dışına atılır ve metodu çağıran yerde yakalanarak çözülmesi istenebilir. Public void ornekyontem() throws SifiraBolmeHatasi ile oluşacak SifiraBolmeHatasi kural dışı durum metot dışına aktarılmıştır. import java.util.scanner; class SifiraBolmeHatasi2 extends Exception public SifiraBolmeHatasi2() super("bolen Sifir!"); public SifiraBolmeHatasi2(String ileti) super(ileti); 25 Kural Dışı Durum Sınıfı Kullanımı public class Bolme public void asilbolme() throws SifiraBolmeHatasi2 Scanner klavye = new Scanner(System.in); System.out.print("Bolunecek sayi:\t"); int a = klavye.nextint(); System.out.print("Bolen sayi:\t"); int b = klavye.nextint(); if (b == 0) throw new SifiraBolmeHatasi2("Bolen Sifir!"); int c = a / b; System.out.println(a + " / " + b + " = " + c); 26

14 Kural Dışı Durum Sınıfı Kullanımı public static void main(string [] args) String yanit; Scanner klavye = new Scanner(System.in); do Bolme islem = new Bolme(); islem.asilbolme(); catch (SifiraBolmeHatasi2 ozeldurum) System.out.println("Bolen Sifir Olamaz!"); System.out.print("Bir daha denemek ister misin? (e/h) "); yanit = klavye.next(); while ((yanit.equals("e")) (yanit.equals("e"))); 27 Konular Kural Dışı Durumlar ve catch Blokları ve throw Komutu Exception Sınıfı Kural Dışı Durum Sınıfı Tanımlama Bir Bloğuyla Çok Sayıda catch Kullanımı Kural Dışı Durum Sınıfı Kullanımı İç İçe - catch Blokları finally Bloğu

15 İç İçe - catch Blokları İç içe if-else ifadeleri kullanıldığı gibi iç içe -catch blokları da kullanılabilir.... cath ()... cath ()... 29 Konular Kural Dışı Durumlar ve catch Blokları ve throw Komutu Exception Sınıfı Kural Dışı Durum Sınıfı Tanımlama Bir Bloğuyla Çok Sayıda catch Kullanımı Kural Dışı Durum Sınıfı Kullanımı İç İçe - catch Blokları finally Bloğu

16 finally Bloğu -catch bloklarının sonuna finally bloğu yazılabilir. finally bloğu içindeki kod, bloğu içinde kural dışı durum olsa da olmasa da çalışır. -catch-finally üçlüsünün çalışması sırasında 3 durum ortaya çıkabilir: Programda hiçbir kural dışı durum oluşmaz ve catch bloğu çalışmaz. finally bloğu çalışır. Programda kural dışı bir durum oluşur ve catch bloğu tarafından yakalanır. Try bloğu özel durum oluşan noktada kesilir ve catch bloğu ardından da finally bloğu çalışır. Try bloğunda bir kural dışı durum oluşur ancak catch bloğunda uygun bir parametre olmadığından yakalanamaz. Ancak yine finally bloğu çalıştırılır. 31 finally Bloğu Scanner klavye = new Scanner(System.in); System.out.print( Bolunecek sayi:\t ); int a = klavye.nextint(); System.out.print( Bolen sayi:\t ); int b = klavye.nextint(); if (b == a) throw new Exception( Bolen Sifir! ); int c = a / b; System.out.println(a + / + b + = + c); cath (Exception ozeldurum) System.out.println( Bolen Sifir Olamaz! ); finally System.out.println( Bu ileti her durumda basilir! ); 32