NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10"

Transkript

1 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10

2 Konular Kural Dışı Durumlar try ve catch Blokları ve throw Komutu Kural Dışı Durum Sınıfı Tanımlama Bir try Bloğuyla Çok Sayıda catch Kullanımı İç İçe try - catch Blokları finally Bloğu

3 Kural Dışı Durumlar Programlar genellikle girişlerin kullanıcı tarafından uygun girileceğ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.

4 Kod derlenebilir Kod hatasızdır Derleme sadece sözdizimi kontrolü yapar Kod hatasız Program hatasız çalışacak Program çalışması kontrol dışıdır Hata hata Hatalara gerektiği gibi davranmak gerekir Tüm bunlar kontrollü olmalıdır

5 İstisna (exception) Nedir? İstisna, bir kod dizisinde, çalışma sırasında ortaya çıkan, anormal bir durumdur. İstisna, hatalı olsun veya olmasın, donanım veya yazılım tarafından tespit edilebilir, olağan olmayan herhangi bir olaydır ve özel bir işlem gerektirir Bir çalışma zamanı (run-time) hatasıdır. İstisnalar, programcılara, hatalar karşısında istenildiği şekilde davranabilme ve oluşacak hataları kontrol altına alabilme yeteneği ve esnekliği sağlar. En önemli kazanım ise hata kontrolü ile algoritmanın birbirinden ayrılmasıdır.

6 Bir sistemi tamamen istisnalara karşı korunaklı tasarlamak ve oluşturmak çok zordur. Çıkabilecek sorunların önceden tamamıyla düşünülmesi mümkün değildir. Sorunlar ciddi farklılıklar gösterebilir. Veri tutarsızlığı Operatör hatası Bellek hatası Yanlış girdi Donanımsal tutarsızlık Sistemlerin tamamen çökmesinin veya güvenlik problemleriyle karşılaşmalarının %80 oranında istisnalardan kaynaklandığı bilinmektedir.

7 İstisna Oluşturma İstisna oluşumuna en basit örnek olarak, yanlış kullanılmış dizi uygulamasını verebiliriz. Java programlama dilinde dizilere erişim her zaman kontrollüdür. Java programlama dilinde dizilerin içerisine bir eleman atmak istiyorsak veya var olan bir elemana ulaşmak istiyorsak, bu işlemlerin hepsi Java tarafından önce bir kontrolden geçirilir. Amaç, güvenli bir dizi erişim mekanizmasına sahip olmaktır.

8 İstisna Oluşturma sayi[], ilkel (primitive) int tipinde dizi değişkenidir ve bağlı bulunduğu dizi nesnesinin içerisinde 2 adet int tipinde eleman vardır. for döngüsü sayesinde dizi içerisindeki elemanlar ekrana basılmaktadır. Örnekteki hata, for döngüsünün fazla dönmesiyle dizinin olmayan elemanına ulaşmak istememizden kaynaklanmaktadır. Böyle bir hareket, çalışma-anında (run-time) hata oluşmasına sebebiyet verip uygulamayı aniden sonlandıracaktır. Ekran çıktısı: Buradaki istisna, ArrayIndexOutOfBoundsException istisnasıdır. Bu istisnanın sebebi, bir dizinin olmayan elemanına erişmeye çalışmamızdır.

9 İstisna Oluşma Sebepleri Açmak istediğiniz fiziksel dosya yerinde olmayabilir. Uygulamanıza kullanıcılar tarafında, beklenmedik bir girdi kümesi gelebilir. Ağ bağlantısı kopmuş olabilir. Yazmak istediğiniz dosya, başkası tarafından açılmış olduğundan yazma hakkınız olmayabilir.

10 İstisna yöneticisi (exception handler) İstisnanın tespitinden sonra gerekli olan özel işleme İstisna Yönetimi (exception handling) denir İstisna yönetimi kodu istisna yöneticisi (exception handler) olarak adlandırılır İstisna yöneticileri farklı istisnalar için farklı biçimlerde davranırlar. Örneğin, bir dosya sonu kontrolündeki program gereksinimlerinin sıfıra bölme işlemiyle karşılaşıldığında aynı davranışı göstermesi beklenemez. Kullanılan dilin istisna işlemini desteklemesi bu tip sorunları çok daha hızlı ve programın güvenilirliğine zarar vermeden çözebilme yeteneğini sunmaktadır.

11 İstisna yöneticisi (exception handler) Yazmakta olduğumuz bir programda yüzden fazla yerde dosya sonu problemi ve bir o kadar da sıfıra bölme problemi olduğunu düşünelim. Yapısal dillerde tüm bu problemler algoritma içerisine gömülü olarak yazılan kod parçalarıyla kontrol altına alınmalıdır. Bu da iki yüz defa aynı kontrolün yazılması anlamına gelebilir. Oysa istisna işleme sayesinde programın bu tip hatalarla karşılaştığında davranışının ne olacağı sadece bir istisna işleyici ile belirlenmektedir. Bu istisna işleyici birden çok program birimi tarafından kullanılabilir; bu sayede kodun hantallaşması önlendiği gibi güvenilirlik azami şekilde sağlıklı kılınmaktadır.

12 İstisna türleri

13 Tüm istisnalar, yerleşik Throwable sınıfının soyundan olan sınıfların nesneleridir. Throwable ın hemen altında, istisnaları iki ayrı dala ayıran, iki altsınıf vardır: 1. Exception Kullanıcı programlarının yakalaması gereken istisnai durumlar için kullanılır. Öntanımlı iki altsınıfı vardır, IOException RuntimeException (örn., ArrayIndexOutOfBoundsException ve NullPointerException) 2. Error Normal şartlar altında program tarafından yakalanmayacak istisnaları tanımlayan sınıftır. Error tipindeki istisnalar, Java run-time ortamının kendisi ile ilgili hatalarını göstermek için Java run-time sistemi tarafından kullanılır.

14 İstisna Tip Hiyerarşisi A.B.Altıntaş - Java Programlama Dili Yazılım Tasarımı

15 Tüm istisnaların kalıtımlandığı Throwable sınıfı, oluşan istisna hakkında bilgi döndürmek için kullanılan, iki tane metot içerir: getmessage() istisna hakkında text olarak bir bilgi döndürür. printstacktrace() bu istisnaya kadar ki çağırma yığınlarını - hangi metotlar çağrılmıştır bilgisini - döndürür.

16 Hata Yönetimi vs. İstisna Yönetimi Hatalara karşı programcıya düşen temel görev programının bu hatalardan dolayı tamamen çökmesini engellemektir. Programcı oluşan bu hataları program içerisinde çözmeye kalkışmamalıdır. Aslında Error sınıfından oluşan nesnelerin esas olarak yaptıkları şey programın akışını durdurup, sorunu belirtmek ve programdan çıkmaktır. Programcının bu hataları işlemesine gerek kalmadan sistem zaten bu hataları ele almaktadır. Programcının asıl yapması gereken iş çeşitli istisnaları sorun olmaktan çıkarmaya uğraşmaktır. Çalışma zamanı istisnaları genel olarak kod yazılımının yol açtığı hatalardır. Bu yüzden, programcı kendi hatalarını ele almasını sağlayacak istisna işleme teknikleri yaratmalıdır.

17 İstisna Yönetimi Bir Java istisnası, kod parçasının çalışma zamanında meydana gelen istisnai bir durumu tarif eden nesnedir. Ana mantık şu şekildedir: İstisnai bir durum ortaya çıktığında, o istisnayı temsil eden bir nesne yaratılır ve hataya sebep olan metodun içine fırlatılır (throw). Programcının olaya nasıl bakması gerektiğiyle ilgili olarak bu metot istisnayı ya yakalar (catch) ve işler ya da yakalanıp işlenmesi için istisnaya dokunmaz ve geçer. Java da istisna işleme konusunda beş anahtar sözcük karşımıza çıkmaktadır: try catch throw throws finally

18 Java da istisna yönetim bloğu aşağıdaki şekildedir: try code(); catch (exception 1) NecessaryErrorProcess1();... catch (exception N) NecessaryErrorProcessN(); finally Finally();

19 Örnek import javax.swing.joptionpane; class OrnekIstisnaUygulamasi public static void main(string args[]) int a,b; try a=integer.parseint (JOptionPane.showInputDialog ( lütfen integer bir sayı giriniz )); b=100/a; System.out.println( istisna sonrasi mesaj ); catch (ArithmeticException e) System.out.println( a= +a+ oldugu icin bolme islemini gerceklestiremiyoruz! ); System.out.println( yönetim sonrasi mesaj ); girdi kutusuna 0 değeri girilince program çıktısı: a=0 oldugu icin bolme islemini gerceklestiremiyoruz yönetim sonrasi mesaj 2 değeri girilince program çıktısı: istisna sonrasi mesaj yönetim sonrasi mesaj

20 Ö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(); System.out.println(a + " / " + b + " = " + c); System.out.println(); System.out.print("Bir daha denemek ister misin? (e/h) "); yanit = klavye.next(); System.out.println(); while ((yanit.equals("e")) (yanit.equals("e")));

21 Ö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.

22 Ö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(); System.out.println("Bolen Sifir Olamaz!"); else int c = a / b; System.out.println(); System.out.println(a + " / " + b + " = " + c);

23 Örnek: İki sayıyı birbirine bölen programın düzeltilmiş hali - devam System.out.println(); System.out.print("Bir daha denemek ister misin? (e/h) "); yanit = klavye.next(); System.out.println(); while ((yanit.equals("e")) (yanit.equals("e"))); Çıktı: Bolunecek sayi: 14 Bolen sayi: 0 Bolen sifir olamaz! Bir daha denemek ister misin? (e/h)

24 Ö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); try 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(); System.out.println(a + " / " + b + " = " + c);

25 Örnek: Java araçları kullanılarak bölme programın düzeltilmiş hali catch (Exception ozeldurum) System.out.println(); System.out.println(ozelDurum.getMessage()); System.out.println("Bolen Sifir Olamaz!"); System.out.println(); System.out.print("Bir daha denemek ister misin? (e/h) "); yanit = klavye.next(); System.out.println(); while ((yanit.equals("e")) (yanit.equals("e"))); try 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 yazdırılır.

26 Konular Kural Dışı Durumlar try ve catch Blokları ve throw Komutu Kural Dışı Durum Sınıfı Tanımlama Bir try Bloğuyla Çok Sayıda catch Kullanımı İç İçe try - catch Blokları finally Bloğu

27 try ve catch Blokları ve throw Komutu Java da istenmeyen durumların çözümünde try-throw-catch üçlüsü kullanılır. try Denenecek program Eğer try bloğunda istenmeyen bir durum oluşursa throw ile dışarıya bildirilir. try Denenecek program Beklenmeyen durumun bildirilmesi satır (throw) Programın devamı

28 try 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.

29 try ve catch Blokları Bir catch kalıbı, içice yuvalanmış try blokları hariç, başka bir try bloğunun attığı istisnayı yakalayamaz. Bir istisna atıldığı zaman, program kontrolü try bloğundan catch bloğuna geçer. Herhangi bir metodun çağrılması gibi catch bloğunun çağrılması söz konusu değildir. Çalışma hiçbir zaman catch bloğundan try bloğuna dönmez. catch bloğu çalıştıktan sonra, program, try/catch kalıbının hemen ardından gelen kod parçalarıyla devam eder.

30 throw ve throws Program sadece Java run-time sistemi tarafından yaratılan istisnaları yakalamak zorunda değildir. throw deyimi kullanılarak istisnayı programcının atması da mümkündür. Atılacak istisna Throwable sınıfının veya bu sınıfın altsınıflarının bir nesnesi olmak zorundadır. Eğer bir metot, işleyemediği bir istisnaya neden oluyorsa, bu durumu mutlaka kendini çağıran diğer programlara bildirmelidir. Bu, metodun içerisine bir throws kalıbı sokularak yapılabilir. throws kalıbı bir metodun fırlatabileceği istisnaları listeler. Bu listenin dışında bir istisna ortaya çıkacak olursa çalışma zamanı hatasına yol açar.

31 Örnek - throw class OrnekIstisnaThrowUygulamasi public static void main(string args[]) try throw new ArithmeticException( 0 a bolme ); catch (ArithmeticException e) System.out.println( istisnai durum= +e); System.out.println( throw islemi sonrasi mesaj ); program çıktısı: istisnai durum= java.lang.arithmeticexception: 0 a bolme throw islemi sonrasi mesaj

32 Örnek - throws public class ThrowsDeneme static void firatmaornegi() throws ArithmeticException System.out.print( firlatilan istisna: "); throw new ArithmeticException("deneme"); public static void main(string args[]) try firlatmaornegi(); catch(arithmeticexception e) System.out.println("burada yakalandi => "+e); program çıktısı: firlatilan istisna: burada yakalandi => java.lang.artihmeticexception: deneme

33 istisna cokcalis() metodunun içerisinde oluşuyor. Oluşan istisna catch mekanizması sayesinde yakalandıktan sonra bir üst sınıfa fırlatılıyor. calis() metodunun içerisinde de aynı şekilde fırlatılan istisna, catch mekanizmasıyla yakalanıp tekrar bir üst kısıma fırlatılıyor. basla() metoduna kadar gelen istisna nesnesi burada yakalanıp içerisinde saklı bulunan bilgiler printstacktrace() metoduyla ortaya çıkartılıyor.

34 Uygulamanın çıktısı: İstisna basla() metodunda işlenmesine karşın nerede oluştuğu bilgisi korunmaktadır.

35 Konular Kural Dışı Durumlar try ve catch Blokları ve throw Komutu Kural Dışı Durum Sınıfı Tanımlama Bir try Bloğuyla Çok Sayıda catch Kullanımı İç İçe try - catch Blokları finally Bloğu

36 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);

37 Ö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); try 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(); System.out.println(a + " / " + b + " = " + c);

38 Örnek - SifiraBolmeHatasi sınıfının kullanımı - devam catch (SifiraBolmeHatasi ozeldurum) System.out.println(); System.out.println(ozelDurum.getMessage()); System.out.println("Bolen Sifir Olamaz!"); System.out.println(); System.out.print("Bir daha denemek ister misin? (e/h) "); yanit = klavye.next(); System.out.println(); while ((yanit.equals("e")) (yanit.equals("e")));

39 Konular Kural Dışı Durumlar try ve catch Blokları ve throw Komutu Kural Dışı Durum Sınıfı Tanımlama Bir try Bloğuyla Çok Sayıda catch Kullanımı İç İçe try - catch Blokları finally Bloğu

40 Bir try Bloğuyla Çok Sayıda catch Kullanımı Java da bir try 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!"); try System.out.print("Bolunecek sayi:\t"); int a = klavye.nextint(); System.out.print("Bolen sayi:\t"); int b = klavye.nextint();

41 Ö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(); System.out.println(a + " / " + b + " = " + c); catch (SifiraBolmeHatasi ozeldurum) System.out.println(); System.out.println(ozelDurum.getMessage()); System.out.println("Bolen Sifir Olamaz!"); catch (BireBolmeHatasi ozeldurum) System.out.println(); System.out.println(ozelDurum.getMessage()); System.out.println("Bolen Bir; Sonuc Sayinin Kendisi!");

42 Örnek - Birden fazla catch bloğu - devam catch (EksiBireBolmeHatasi ozeldurum) System.out.println(); System.out.println(ozelDurum.getMessage()); System.out.println("Bolen Eksi Bir; Sonuc Sayinin Eksisi!"); catch (Exception ozeldurum) System.out.println(); System.out.println(ozelDurum.getMessage()); System.out.println("Genel Hata Olustu"); System.out.println(); System.out.print("Bir daha denemek ister misin? (e/h) "); yanit = klavye.next(); System.out.println(); while ((yanit.equals("e")) (yanit.equals("e")));

43 Konular Kural Dışı Durumlar try ve catch Blokları ve throw Komutu Kural Dışı Durum Sınıfı Tanımlama Bir try Bloğuyla Çok Sayıda catch Kullanımı İç İçe try - catch Blokları finally Bloğu

44 Konular Kural Dışı Durumlar try ve catch Blokları ve throw Komutu Kural Dışı Durum Sınıfı Tanımlama Bir try Bloğuyla Çok Sayıda catch Kullanımı İç İçe try - catch Blokları finally Bloğu

45 İç İçe try - catch Blokları İç içe if-else ifadeleri kullanıldığı gibi iç içe try-catch blokları da kullanılabilir. try try... cath ()... cath ()...

46 Konular Kural Dışı Durumlar try ve catch Blokları ve throw Komutu Kural Dışı Durum Sınıfı Tanımlama Bir try Bloğuyla Çok Sayıda catch Kullanımı İç İçe try - catch Blokları finally Bloğu

47 finally Bloğu try-catch bloklarının sonuna finally bloğu yazılabilir. finally bloğu içindeki kod, try bloğu içinde kural dışı durum olsa da olmasa da çalışır. try-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.

48 finally Bloğu finally bloğu içerisindeki kod mutlaka çalışması gereken koddur. Neden böyle bir şeye gerek duyulur? istisna oluşması programın akışına yön değiştirten bir durumdur. Bazı metotların işlemesi mutlak gerekli ise bu durum ciddi problemler yaratabilir. Bu tip problemlerin oluşmaması için finally bloğu kullanılır. Örneğin açık kalmış dosyaların kapatılması gibi işlemler genelde finally bloğu içerisine yazılarak olası problemler engellenmiş olur.

49 finally Bloğu Scanner klavye = new Scanner(System.in); try 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 () System.out.println(ozelDurum.getMessage()); System.out.println( Bolen Sifir Olamaz! ); finally System.out.println( Bu ileti her durumda basilir! );

50 Dikkat System.exit(); Eğer System sınıfının statik bir yordamı olan exit() çağrılırsa finally bloğuna hiç girilmez. System.exit() yordamı uygulamanın içerisinde çalıştığı JVM'i (Java virtual machine) kapatır. exit() yordamına gönderilen eksi bir değer JVM'in anormal bir sonlanış yapacağını ifade eder.

51 ÖZET İstisnalar için izlenen kod, bir try bloğu içerisinde tutulur. Bu bloğun anlamı bu kodu çalıştır ve istisna oluşacak mı gö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 bu istisnayı catch ifadesi ile yakalayabilir ve işleyebilir. Her catch bloğu ne tipte bir istisnayı yakalayabileceğini belirler ve içerisinde o tipte istisnayı işlemek üzere bir istisna işleyici bulunur. Eğer programcı bir istisnayı bizzat atmak istiyorsa throw ifadesini kullanır. Bir metottan atılan her istisna bir throws kalıbı ile belirtilir. finally ile belirtilen bloğun içindeki kod, istisna oluşsun veya oluşmasın kesinlikle çalışması gereken koddur. Bazı kodların her ne olursa olsun çalışması gerekiyorsa finally bloğunun içinde yer almalıdır.

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 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,

Detaylı

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

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 8. Yrd.Doç.Dr.Hacer Karacan NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 8 Yrd.Doç.Dr.Hacer Karacan İçerik İstisna Yönetimi (Exception Handling) İstisna Nedir? İstisna Yakalama Mekanizması İstisna İşleme Modeli İstisnaların Listesi İstisna

Detaylı

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

İstisnalar (Exceptions) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 8 1 İstisnalar (Exceptions) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 8 1 İstisna deyince aklınıza ne geliyor? Diğerlerinin yazdığı programda hata olabilir ama benim yazdığım programda hata olmaz...

Detaylı

BİL132 Bilgisayar Programlama II

BİL132 Bilgisayar Programlama II BİL132 Bilgisayar Programlama II 8. Olağandışı durumlar (exceptions) Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü Yüksel Tarhan Olağandışı durum Kütük bulunamadı Diskte yer kalmadı Nesne referans

Detaylı

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

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO while(), do-while(), for() Döngü (loop) : Bir koşul sağlandığı (true olduğu) sürece bir veya birden çok komutun tekrarlanması işlemidir. Java Döngüler (loops) While() do-while() for ( ) while ( koşul )

Detaylı

// hataları işaret eden referans

// hataları işaret eden referans System sınıfı java.lang.object java.lang.system public final class System extends Object System sınıfı, java.lang paketi içindedir. Platformdan bağımsız olarak sistem düzeyindeki eylemleri belirleyen dingin

Detaylı

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

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN GİRİŞ Ekrana «Merhaba Java» şeklinde bir mesajı 100 defa yazmak istediğinizi düşünelim. Aşağıdaki komut satırını 100 kez yazmak sıkıcı

Detaylı

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

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN TEMEL AMAÇLAR Bir dairenin yarıçapını kullanıcıdan alarak dairenin alanını hesaplamak istediğimizi düşünelim. Eğer girilen değer

Detaylı

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

Örnek 1: Programı yazın ve çalıştırın. 1 0 Örnek 1: Programı yazın ve çalıştırın import javautilscanner; public class MatrisFaiz1 public static void main(string[] args) Scanner klavye=new Scanner(Systemin); double [][] faiztablo = new double

Detaylı

İç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

İç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 İçerik Java da İşleçler, Kontrol Akış ve Döngü Deyimleri Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu ders: Java da işleçler ( operators ) Java da kontrol-akış

Detaylı

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

Java da İşleçler, Ders #3 (4 Kasım 2009) Java da İşleçler, Kontrol Akış ve Döngü Deyimleri BS-515 Nesneye Yönelik Programlama Ders #3 (4 Kasım 2009) İçerikç Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu

Detaylı

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

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9. UYGULAMA 2012-2013 GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9 UYGULAMA ÖRNEK 1: Kullanıcıdan anapara miktarını istedikten sonra 0025, 0050, 0075 ve 0100 dönem faizi değerlerini kullanarak gelecek 10 dönem

Detaylı

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

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com Barbara Liskov 1 tarafından geliştirilen bu prensip kısaca

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

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.

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. 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. [10 puan] int param = 30; int result = 300; if (param > 45) result

Detaylı

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

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları ComboBox Bir Windows açılan kutu sunu temsil eder. ComboBox kontrolü, kullanıcıların bazı değerleri açılan bir listeden seçmesini sağlar. Listeye tasarım anında veya çalışma anında öğe eklenebilir. Listeye

Detaylı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra

Detaylı

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

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach() (LOOPS) while(), do-while(), for(), foreach() Döngüler (loops) while do-while for foreach while ( koşul ) işlemler; do işlemler; while (koşul ); for (başlangıç ; koşul ; arttırma) işlemler; foreach ( tip

Detaylı

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

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 6. UYGULAMA 2012-2013 GÜZ DÖNEMİ AKT5 BİLGİSAYAR PROGRAMLAMA DERSİ 6. UYGULAMA ÖRNEK 1: En ve boy uzunluklarını kullanıcıdan isteyen ve yıldızlardan oluşan içi dolu dikdörtgen hazırlayan, ekranda aşağıdaki çıktıyı

Detaylı

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ 2017-2018 BaharYarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü 7 BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Java Programlama Dili ve Algoritmadan Kodlamaya Geçiş) Yrd. Doç. Dr. İbrahim Küçükkoç

Detaylı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 JAVA DA PROGRAM DENETİMİ VE OPERATÖRLER Java programlama dilinde temel tipleri ve nesneleri yönlendirmek ve değiştirmek için operatörler kullanılır. Atamalar sağ taraftaki

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 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,

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya

Detaylı

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

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA Muhammet BAYKARA 1 İlkel Veri Türleri Type Name Kind of Value Memory Used Size Range byte integer 1 byte -128 to 127 short integer 2 bytes -32768

Detaylı

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

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA -3 GÜZ DÖNEMİ AKT5 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA ÖRNEK : f() ve g() parçalı fonksiyonları aşağıdaki gibi tanımlanmıştır. değerini kullanıcıdan isteyen ve hesaplamalar sonucunda elde edilecek

Detaylı

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ MTK467 Nesneye Yönelik Programlama Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ while döngüsü while(koşul){ } döngü ifadeleri Koşul boolean değerli olmalıdır. Koşulun değeri true

Detaylı

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

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır. GİRİŞ Algoritması tasarlanmış (metin olarak yazılmış, sözde kodlarla kodlanmış veya akış diyagramı çizilmiş) bir problemi/işlemi, bilgisayar programlama dillerinden birisiyle kodlamak son derece kolaydır.

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları METOTLAR Nesneye yönelik programlama dillerinde genellikle fonksiyonlar metot olarak isimlendirilirler. Metot ve fonksiyon olarak ifade edilecek kavramlar aynı anlamda kullanılacaktır. Her çalışan C# programı

Detaylı

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

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır. GİRİŞ Algoritması tasarlanmış (metin olarak yazılmış, sözde kodlarla kodlanmış veya akış diyagramı çizilmiş) bir problemi/işlemi, bilgisayar programlama dillerinden birisiyle kodlamak son derece kolaydır.

Detaylı

Hata Ayıklamanın Ötesi... (Assertion) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 14 1

Hata Ayıklamanın Ötesi... (Assertion) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 14 1 Hata Ayıklamanın Ötesi... (Assertion) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 14 1 Assertion Assertion kelimesinin Türkçe karşılığı iddia, birşeylerin doğruluğunu ispat etmek anlamlarına

Detaylı

Programlama Dillerinde Kullanılan Veri Tipleri

Programlama Dillerinde Kullanılan Veri Tipleri Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs

Detaylı

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez... Javada Diziler Java da diziler nesnedir; içerisinde belirli sayıda eleman bulunur. Eğer bu sayı sıfır ise, dizi boş demektir. Dizinin içerisindeki elemanlara eksi olmayan bir tam sayı ile ifade edilen

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı

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

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir: Programın Akışının Denetimi Bir program komutların yazıldığı sırada akar. Ama çoğunlukla, bu akışı yönlendirmek gerekir. Bu iş için denetim yapılarını kullanırız. Bunlar iki gruba ayrılabilir: Yönlendiriciler

Detaylı

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

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

Detaylı

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi 5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını

Detaylı

3.Hafta. . Kontrol Deyimleri/İfadeler

3.Hafta. . Kontrol Deyimleri/İfadeler . Kontrol Deyimleri/İfadeler Kontrol deyimleri bir uygulamanın yürütülmesi sırasında program akışını yönlendiren yapılar/kalıplardır. Kontrol deyimi olmaksızın bir uygulama yazılması neredeyse olanaksıdır

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

Detaylı

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

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ Amaçlar: 1- Arayüzler (Interfaces) 2- Soyut Sınıflar ve Metotlar(Abstract classes and methods) Uygulama-1: interface:cihaz ac() kapat() goster(string) class: TV class: LCD class: Projector... Cihaz adındaki

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Ders konuları 1. Programlamaya Giriş 2. Program Denetimi ve Operatörler 3. Nesnelerin

Detaylı

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir. www.csharpturk.net Türkiye nin C# Okulu Yazar Yunus Özen Eposta yunus@yunus.gen.tr Tarih 08.04.2006 Web http://www.yunusgen.tr ARİTMETİK OPERATÖRLER VE KULLANIM ŞEKİLLERİ Bilgisayarlar yapıları gereği,

Detaylı

Ders - 7 while döngüsü

Ders - 7 while döngüsü Ders - 7 while döngüsü import java.util.scanner; public class StringKiyaslama { public static void main(string[] args) { Scanner klavye=new Scanner(System.in); Oncelikle Lab icin bir aciklama System.out.println("1.

Detaylı

İstisnalar (Exception)

İstisnalar (Exception) BÖLÜM 8 Altuğ B. Altıntaş 2004 İstisnalar (Exception) Diğerlerinin yazdığı programda hata olabilir ama benim yazdığım programda hata olmaz... - Anonim Bu bölümde istisnalar üzerinde durulacaktır. İstisna

Detaylı

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

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BİR BOYUTLU DİZİLER Amaçlar: 1. 1 BOYUTLU DİZİLERİ TANIMLAMAK 2. 1 BOYUTLU DİZİ UYGULAMALARI YAPMAK Örnek 5-1 Aşağıdaki program öğrenci notlarını bularak en iyi notu hesaplar. Harf notu şu şekilde hesaplanır:

Detaylı

Java da Program Denetimi ve Operatörler

Java da Program Denetimi ve Operatörler Java da Program Denetimi ve Operatörler 1 Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! 2 Temel (Primitive) Tiplerde Atama int a, b ; a=4 ; b=5 ; a=b ; Sonuç : a=5, b=5 3 Nesneler

Detaylı

Java Class Yapısında Finalize Metotunun Kullanımı

Java Class Yapısında Finalize Metotunun Kullanımı Java'da finalize() Metodu: Java dili kullanılmayan nesneleri silmek için arka planda çalışan bir sisteme sahiptir. Bu yüzden C++ gibi dillerde dinamik nesne tanımlarında mutlaka yer alması gereken nesneyi

Detaylı

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

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat 1. Kısım Çoktan Seçmeli (48 puan) 1) Aşağıdaki JAVA kod parçası çalıştırıldığında

Detaylı

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

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 1 hafta Ödev No : 2 (İlk 2 soru el yazısı ile çıktı alınarak

Detaylı

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

Karşılaştırma İşlemleri ve Koşullu İfadeler Karşılaştırma İşlemleri ve Koşullu İfadeler BİL131 - Bilişim Teknolojileri ve Programlama Hakan Ezgi Kızılöz Karşılaştırma İşlemleri Java'da sayısal veri tiplerinin karşılaştırılması için aşağıdaki karşılaştırma

Detaylı

M.ilkucar MAKU MYO 1

M.ilkucar MAKU MYO 1 M.ilkucar 2010 - MAKU MYO 1 7- PROGRAM YAPISAL KOMUTLARI Acaba hangi yöne gitmeliyim? Oturduğun yerden kalkıp, kapıya varana kadar kaç kez karar verdiniz biliyor musunuz? M.ilkucar 2010 - MAKU MYO 2 7-

Detaylı

JAVADA DİZİ İŞLEMLERİ

JAVADA DİZİ İŞLEMLERİ JAVADA DİZİ İŞLEMLERİ Javada diziler nesnedirler, cdeki gibi hafızada yer kaplayan pointer değillerdir. Javada diziler, cye göre daha güvenilirdir. Dizilerin elemanlarına gelişigüzel değerler atayamazsınız.

Detaylı

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

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1 Java da Program Denetimi ve Operatörler Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1 Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! Altuğ B. Altıntaş 2003 Java ve Yazılım

Detaylı

EMT2226 Nesne Yönelimli Programlamaya Giriş

EMT2226 Nesne Yönelimli Programlamaya Giriş 2017-2018 Bahar Yarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü EMT2226 Nesne Yönelimli Programlamaya Giriş 2 Yrd. Doç. Dr. İbrahim Küçükkoç Web: ikucukkoc.baun.edu.tr Email: ikucukkoc@balikesir.edu.tr

Detaylı

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

if (ad == Sabri) Console.WriteLine(Merhaba Sabri. Ne zamandır gözükmüyodun...); Koşul İfadeleri ve Akış Kontrolü Koşul ifadeleri ve akış kontrolleri programlama dillerinde her zaman en önemli yeri tutmaktadır. Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir

Detaylı

BIL101 07/11/2012 Lab5 Programlama Sorulari

BIL101 07/11/2012 Lab5 Programlama Sorulari BIL101 07/11/2012 Lab5 Programlama Sorulari 1- Bir kişinin banka hesabı üstünden yapacağı para çekme ve yatırma işlemleri sonucu banka hesap bakiyesini hesaplayacak bir program yazınız. Programiniz asagidaki

Detaylı

JAVA PROGRAMLAMAYA GİRİŞ

JAVA PROGRAMLAMAYA GİRİŞ LAB I JAVA PROGRAMLAMAYA GİRİŞ Java Kurulumu Java dili ile programlama yapabilmek için java jdk ve java kodlama yapılabilecek uygun bir geliştirme ortamı kurulmalıdır. Eclips IDE yaygın olarak kullanılan

Detaylı

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

D İ Z İ L E R A R R A Y S D İ Z İ L E R A R R A Y S 1 Örneğin 120 adet öğrencinin adını klavyeden girip, daha sonra bunları ekrandan yazdıralım. Bunun için, her öğrenci için ayrı bir değişken tanımlanmalıdır. String ad1; String

Detaylı

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

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ Ana Main Kodları /*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ package javaapplication1; public class JavaApplication1 public static void

Detaylı

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

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu BBS515 Nesneye Yönelik Programlama Ders 3 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ Bağıntısal Operatörler operatör tanımı < küçüktür > büyüktür = büyük eşittir eşittir!= eşit

Detaylı

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.

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. DÖNGÜLER Amaçlar: 1. ÇEVRİM OLUŞTURMA (DÖNGÜ) 2. WHILE DEYİMİ 3. DO... WHILE DEYİMİ 4. FOR DEYİMİ Örnek 4-1 Programı yazın ve çalıştırın. Örnek 4-2 Programı yazın ve çalıştırın. Örnek 4-3 Aşağıdaki kodu

Detaylı

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

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) BBS-515 Nesneye Yönelik Programlama Ders #9 (16 Aralık 2009) Geçen ders: Java Applet lerde bileşen yerleştirme türleri ( applet layouts

Detaylı

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

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals The European Union s Making the Labour Market more Inclusive III programme For North Cyprus Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals Module

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

Detaylı

Lambda İfadeleri (Lambda Expressions)

Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri, değişkenlere değer atamak için kullanılan sadeleştirilmiş anonim (isimsiz) fonksiyonlardır. Bu fonksiyonlar matematikteki ve bilgisayar bilimlerindeki

Detaylı

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama İçerik Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili kavramlar Bu hafta:

Detaylı

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ü 2017-2018 Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü Yrd. Doc. Dr. İbrahim KÜÇÜKKOÇ Web: http://ikucukkoc.baun.edu.tr Email: ikucukkoc@balikesir.edu.tr Dersin Amaci: Algoritma geliştirme

Detaylı

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ü 2017-2018 Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü Yrd. Doc. Dr. İbrahim KÜÇÜKKOÇ Web: http://ikucukkoc.baun.edu.tr Email: ikucukkoc@balikesir.edu.tr 1 Dersin Amaci: Algoritma

Detaylı

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! Temel Tiplerde Atama Atama işlemi, temel (primitive) tipler için

Detaylı

Java String İşlemleri

Java String İşlemleri Java String İşlemleri Karakterler (Characters) "char" kelimesi bir karakter tanımlamak için kullanılır. Karakter tek tırnak içine alınmalıdır. Bir char'ın aralığı 0 ile 65536 arasındadır. Char türü işaretsiz

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Kontrol Yapıları if Seçme Deyimi if... else Seçme Deyimi while Tekrar

Detaylı

Programlama Dili Prensipleri. Lab Notları 4

Programlama Dili Prensipleri. Lab Notları 4 Programlama Dili Prensipleri Lab Notları 4 1. Karar Yapıları IF Yapıları Karar yapıları olarak C/C++ ile Java programlama dilleri birbirine yakın ifadeler içerir. Bir programın akışı yukarıdan aşağı doğru

Detaylı

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Ders #2 (2 Kasım 2009) İçerikç Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili

Detaylı

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.

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. Bölüm 09 Döngüler for döngüsü do döngüsü while döngüsü foreach döngüsü Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar

Detaylı

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

Calistir diye normal bir java classı ekleyelim.aynı pakete ekleyelim.public ve main metodu ekleyelim. Calistir diye normal bir java classı ekleyelim.aynı pakete ekleyelim.public ve main metodu ekleyelim. KopekEkranı çalıştırmak için kullanacaz. KopekEkran dan obje üretiyoruz. Swing programlarda ekranın

Detaylı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

HATA YAKALAMAK VE AYIKLAMAK GİRİŞ HATA AYIKLAMA. Hata Yakalamak ve Ayıklamak

HATA YAKALAMAK VE AYIKLAMAK GİRİŞ HATA AYIKLAMA. Hata Yakalamak ve Ayıklamak GİRİŞ HATA YAKALAMAK VE AYIKLAMAK Görsel programlamada gerçekleştirdiğimiz projelerde üzerinde önemle durmamız gereken konulardan biri de hata yakalama ve ayıklama üzerine alacağımız tedbirlerdir. Programlama

Detaylı

Temel Veri Türü İşlemleri

Temel Veri Türü İşlemleri Temel Veri Türü İşlemleri BİL131 - Bilişim Teknolojileri ve Programlama Hakan Ezgi Kızılöz Değişkenler ve Veri Türleri Programlama dillerinde her değişken için bir veri türü tanımı yapılır. Değişkenler,

Detaylı

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

Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden veri girilmesi, girilen verilere çeşitli işlemler uygulandıktan sonra ekrana yazdırılması ya da herhangi bir yazıcıdan çıktı alınması gibi işlemlerdir. Javada

Detaylı

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

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır. Stack Sınıfı (yığıt) java.util Class Stack java.lang.object java.util.abstractcollection java.util.abstractlist java.util.vector java.util.stack Stack (yığıt) sınıfı nesnelerin LIFO (last-input-first-output)

Detaylı

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu. Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html

Detaylı

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları 4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları Şart yapıları bir bilgisayar programının olmazsa olmazlarındandır. Şart yapıları günlük hayatımızda da çok fazla karşılaştığımız belirli

Detaylı

7. HAFTA. Erişim Belirleyiciler

7. HAFTA. Erişim Belirleyiciler 7. HAFTA Erişim Belirleyiciler Java dilinde 4 tür erişim belirleyicisi vardır; bunlar friendly, public, protected ve private dir. Bu erişim belirleyiciler global alanlar (statik veya değil) ve yordamlar

Detaylı

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance public class Test { // çalışır İnsan insan = new Çiçekçi();

Detaylı

WWW.OZTEKHABERLESME.COM

WWW.OZTEKHABERLESME.COM ÖZTEK HABERLEŞME APİ DÖKÜMANI WWW.OZTEKHABERLESME.COM VER:6.1.0 ~ 1 ~ İÇİNDEKİLER BİLMENİZ GEREKENLER... 3 HTTP POST (XML) YÖNTEMİ... 4 TANIMLAR... 4 ÖRNEK XML YAPISI... 4 PHP ÖRNEK KOD... 5 Örnek Sayfayı

Detaylı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya

Detaylı

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?

Detaylı

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. PROGRAMLAMAYA GİRİŞ Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. C de yazılan bir programın çalışması için çoğunlukla aşağıdaki

Detaylı

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

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4 Yrd.Doç.Dr.Hacer Karacan İçerik Nesne Oluşturma Nesnenin Yaşam Süreci Dahili Sınıflar Nesne Oluşturma Java dahil pek çok programlama dilinde nesne oluşturmak için

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya

Detaylı

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

Chain of Responsibility Tasarım Şablonu KurumsalJava.com Chain of Responsibility Tasarım Şablonu KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com Chain of responsibility sorumluluk zinciri anlamına gelmektedir. Sisteme gönderilen bir

Detaylı

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

JAVA DA İSTİSNALAR VE DOSYA İŞLEMLERİ. Yrd. Doç.Dr. İlhan AYDIN JAVA DA İSTİSNALAR VE DOSYA İŞLEMLERİ Yrd. Doç.Dr. İlhan AYDIN Exceptions - İstisnalar İstinsa çalışma zamanında oluşan bir hatadır. Java VM tarafından beklenmeyen bir durum için veya throw komutunu çalıştırmanın

Detaylı

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

Java ile Nesneye Yönelik Programlama (Object Oriented Programming) Java ile Nesneye Yönelik Programlama (Object Oriented Programming) Giriş Yrd. Doç. Dr. Aybars UĞUR Örnek 1 Bir Yolcu sınıfı, yolcu1 nesnesi oluşturulması ve kullanılması class Yolcu String ad; String soyad;

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Yazılımda Günlükleme (Logging) Üst Düzey Programlama-ders07/ 1 Günlükleme -Logging Tüm büyük çaplı uygulamalarda günlükleme(logging) ihtiyaçları bulunmaktadır. Bir uygulamanın hata

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Servlet Üst Düzey Programlama-ders01/ 1 Servlet Nedir? Web sayfaları ilk başlarda durağan bir yapıya sahipti ve kullanıcıdan bilgi alarak işlemler yapmıyordu. Zamanın geçmesiyle kullanıcıya

Detaylı

Akış Konrol Mekanizmaları

Akış Konrol Mekanizmaları Akış Konrol Mekanizmaları Koşul İfadeleri C# dilinde koşula bağlı olarak işlemler gerçekleştirmek için iki farklı deyim kullanılabilir: if deyimi switch deyimi If Deyimi if (Koşul) else Koşul_doğru_ise_yapılacaklar

Detaylı