Program Hatalarını Çözümleme

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

Download "Program Hatalarını Çözümleme"

Transkript

1 Program Hatalarını Çözümleme (Exceptퟎ ons handlퟎ ng) Programlamanın altın bퟎ r kuralı vardır. Program, ya doğru sonuçlar vermelퟎ ya da hퟎ çbퟎ r sonuç vermemelퟎ. Çünkü yanlış sonuçlar, cퟎ ddퟎ sorunlar yaratabퟎ lퟎ r. Program hatalarını üç gruba ayırabퟎ lퟎ rퟎ z. Sözdᾂzᾂmᾂ yanlışları (syntax errors) Bunlar programcının canını sıkabퟎ lퟎ rler, ama başkalarına zarar veremezler, çünkü derlenemezler, koşturulamazlar. Dolayısıyla yanlış sonuç vermelerퟎ olanaksızdır. Bu gruptakퟎ ler tehlퟎ kesퟎ z yanlışlardır. Mantıksal yanlışlar (logᾂcal errors) Programın sözdퟎ zퟎ mퟎ doğrudur,derlenebퟎ lퟎ r, koşturulabퟎ lퟎ r. Ama yapılmak ퟎ stenen ퟎ şler ퟎ çퟎ n kullanılan deyퟎ mler yanlıştır. Yanlış ퟎ şlemler, yanlış hesaplar yapar. Programın denenme aşamasında bu tür yanlışlar ortaya çıkmazsa, programın kullanılması cퟎ ddퟎ sorunlar yaratabퟎ lퟎ r. Örneğퟎ n, bퟎ r bankada hesaplar arasında para akışını kaydeden bퟎ r program modülünün eksퟎ k veya fazla toplama yaptığını düşününüz. Kısa zamanda, üstesퟎ nden gelퟎ nmesퟎ zor sorunlar yaratır. Bu tür yanlışlar, programcılıkta en tehlퟎ kelퟎ sayılan yanlışlardır. Koşma zamanı yanlışları (run tᾂme errors) Program sözdퟎ zퟎ mퟎ ya da mantıksal yanlış ퟎ çermퟎ yor, ama bazı nedenlerle koşamıyor olabퟎ lퟎ r. Örneğퟎ n, gereklퟎ verퟎ lerퟎ bퟎ r gퟎ rퟎ ş bퟎ rퟎ mퟎ nden okuyamaması, yada verퟎ lerퟎ bퟎ r çıkış bퟎ rퟎ mퟎ ne gönderememesퟎ, ퟎ şlemlerde sıfıra bölme gퟎ bퟎ olanaksız bퟎ r durumla karşılaşması, vb. Bퟎ z bu bölümde, üçüncü tür yanlışlarla, yanퟎ koşma sırasında oluşan yanlışlarla ퟎ lgퟎ leneceğퟎ z. Teknퟎ k ퟎ fadesퟎ yle söylersek, program yazılırken bퟎ lퟎ nemeyecek, ama program koşarken oluşabퟎ lecek ퟎ stퟎ snaퟎ (exceptퟎ ons) hallerퟎ konu edퟎ neceğퟎ z. Koşma sırasında beklenmedퟎ k bퟎ r hata ퟎ le karşılaştığında, kaynak program başka bퟎ r önlem koymamışsa, sퟎ stem program akışını durdurur. Bu durum bazen zararlı sonuçlar da yaratabퟎ lퟎ r. Örneğퟎ n, bퟎ r I/O ퟎ şlemퟎ nde, gereklퟎ verퟎ dönüşümünün bퟎ r nedenle yapılamaması ퟎ stퟎ snaퟎ bퟎ r haldퟎ r ve bu noktadan sonra programın koşması anퟎ den durmak zorundadır. Ama, programın koşması durunca, verퟎ alış verퟎ şퟎ yaptığı dosyaları kapatamaz. Böylece o dosyalarda verퟎ kaybına yol açabퟎ lퟎ r. Programlamanın ퟎ lk yıllarında, bu tür yanlışların üstesퟎ nden gelebퟎ lmek ퟎ çퟎ n haylퟎ zorluk çekퟎ lퟎ rdퟎ. Java, koşma sırasında oluşan bퟎ r çok yanlışı kendퟎ lퟎ ğퟎ nden belퟎ rler, durumu kullanıcıya bퟎ ldퟎ rퟎ r ve programı kapatıp ퟎ şletퟎ m sퟎ stemퟎ ne döner. Buna ek olarak, bu tür yanlışlar oluştuğunda, programcı ne yapmak ퟎ stퟎ yorsa, onu yapmasını sağlayan araçlara da sahퟎ ptퟎ r. Bu bölümde, bu araçların nasıl kullanıldığını göreceğퟎ z. Java nesne yönelퟎ mlퟎ bퟎ r programlama dퟎ lퟎ olduğuna göre, ퟎ stퟎ snaퟎ hallerퟎ bퟎ r sınıf olarak düşünmüş olması doğaldır. Java.lang paketퟎ ퟎ çퟎ nde Throwable sınıfı bu ퟎ ş ퟎ çퟎ n yaratılmıştır. Throwable sınıfı, karşılaşılabퟎ lecek bütün ퟎ stퟎ snaퟎ hallerퟎ ortaya koyabퟎ lecek zengퟎ nlퟎ ktedퟎ r. Çok sayıda alt sınıflara ve metotlara sahퟎ ptퟎ r. Throwable sınıfı, önce ퟎ kퟎ büyük alt sınıfa ayrılır: Exceptions ve Error. Programın yakalamasını ퟎ stedퟎ ğퟎ mퟎ z ퟎ stퟎ snaퟎ hallerퟎ, Exceptions sınıfının alt sınıfları ve onlar ퟎ çퟎ ndekퟎ metotlarla hallederퟎ z. Ayrıca, programcı, kendퟎ sퟎ ne gereklퟎ olan sınıfları da buradan türetebퟎ lퟎ r. Throwable sınıfının 60 dan çok dퟎ rek alt sınıfı vardır ve her bퟎ r alt sınıfın da başka alt sınıfları, constructor ları ve metotları vardır. Örneğퟎ n, çok kullanacağımız alt sınıflardan bퟎ rퟎ sퟎ RunTimeExceptionsınıfı ퟎ le onun alt sınıfı ArithmeticExceptionolan sınıfıdır. Error sınıfı ퟎ se, normal koşullarda programın yakalayamayacağı hataları sퟎ stemퟎ n yakalaması ퟎ çퟎ ndퟎ r. Örneğퟎ n stack overflow gퟎ bퟎ ퟎ stퟎ snalardır. Bu gruba gퟎ ren hataları, normal koşullarda, program ퟎ çퟎ nde çözümleme olanağı yoktur. Bunlar, programdan çok, sퟎ stemle ퟎ lgퟎ lퟎ ퟎ stퟎ snalardır. Çoğunlukla, programın koşmasının durmasıyla sonuçlanır. Dolayısıyla, bu bölümde o tür ퟎ stퟎ snaları gퟎ dermeye uğraşmayacağız. Yukarıda sözü geçen sınıfların hퟎ yerarşퟎ k yapıları şöyledퟎ r: java.lang.object java.lang.throwable java.lang.object java.lang.throwable java.lang.error java.lang.object java.lang.throwable java.lang.exception java.lang.runtimeexception java.lang.arithmeticexception Hata yakalanmazsa 1/11

2 Program koşarken oluşabퟎ lecek hataları yakalamanın ne kadar önemlퟎ olduğunu anlamak ퟎ çퟎ n aşağıdakퟎ basퟎ t örneğퟎ verelퟎ m. class Hata01 { int payda = 0; int pay = 38/payda ; Bu programı koşturduğumuzda, sıfıra bölme (dᾂvᾂde by zero) ퟎ şlemퟎ yle karşılaşır. Matematퟎ ksel olarak bu ퟎ şlem olanaksızdır. Bu durumda, java run tퟎ me sퟎ stemퟎ, programın koşmasını keser ve kullanıcıya aşağıdakퟎ mesajı verퟎ r. Bu mesaj şunları söylüyor. Yakalanan hata, Exceptions sınıfının ArithmeticException adlı alt sınıfı ퟎ le belퟎ rlenen hatadır. Bu hatanın açıklaması olarak yazılan ( / by zero) kısa mesajı, divide by zero (sıfıra bölme) hatası yakalandı anlamındadır. Hata01.main(Hata01.java:4 dퟎ zퟎ sퟎ ퟎ se, Hata01, main, Hata01.java, 4 verퟎ lerퟎ nퟎ n programı yöneten stack tan, yazıldığı sıra ퟎ le alındığını gösterퟎ r. Exception in thread "main" java.lang.arithmeticexception: / by zero at Hata01.main(Hata01.java:4) Şimdi, aynı programı, bir metot kullanarak yeniden kodlayalım. class Hata02 { static void kesir() { int d = 0; int a = 10 / d; Hata02.kesir(); Bu kez de aynı hata oluşacak, programın koşması kesퟎ lecek ve aşağıdakퟎ mesaj gelecektퟎ r. Bu mesaj, yukarıdakퟎ mesajın anlamını taşır. Ancak, programın yapısı farklı olduğundan, yönetퟎ cퟎ stack tan çıkanlar farklıdır: Exception in thread "main" java.lang.arithmeticexception: / by zero at Hata02.subroutine(Hata02.java:4) at Exc1.main(Exc1.java:7) Bu mesajı şöyle yorumlayacağız. 7 ퟎ ncퟎ satırda main ퟎ n çağırdığı kesir() metodunun 4 üncü satırında ArithmeticException sınıfının belퟎ rledퟎ ğퟎ divide by zero hatası yakalanmıştır. Yönetퟎ cퟎ stack ın bu bퟎ çퟎ mde hataları lퟎ stelemesퟎ, programın düzeltퟎ lebퟎ lmesퟎ (debug) ퟎ çퟎ n çok yararlıdır. Çünkü hatanın nerede oluştuğunu görmemퟎ zퟎ sağlar. Hata yakalama Java da koşma zamanı oluşan hatalara exceptퟎ ons (ퟎ stퟎ snaퟎ haller) denퟎ r. İstퟎ snaퟎ haller beş anahtar sözcükle ퟎ şlenퟎ r: try catch throw throws finally Şퟎ mdퟎ bunların nasıl kullanıldığını açıklayacağız. try/catch Öncekퟎ ퟎ kퟎ programda gördüğümüz gퟎ bퟎ, java run tퟎ me sퟎ stemퟎ nퟎ n, koşturma anında oluşan hatayı yakalayıp, koşmayı kesmesퟎ ve hatayı belퟎ rten bퟎ r mesaj vermesퟎ, kuşkusuz çok yararlıdır. Bunu görünce, kaynak programımıza dönüp, oluşan hataları gퟎ derecek düzeltmelerퟎ (debug) programda yapmamız kolaylaşır. Ama, çoğunlıkla, program koşarken oluşabퟎ lecek hataları, programın koşmasını kesmeden gퟎ derme olanağı olabퟎ lퟎ r. Java, Throwable sınıfını bunun ퟎ çퟎ n yaratmıştır. İstퟎ snaퟎ hallerퟎ çözümlemek ퟎ çퟎ n, java try/catch bloklarını kullanır. Şퟎ mdퟎ, örneklerle bu ퟎ şퟎ n nasıl yapıldığını açıklayacağız. Programda, ퟎ stퟎ snaퟎ hallerퟎ n (exceptퟎ ons) oluşabퟎ leceğퟎ yerler try{ bloku ퟎ çퟎ ne alınır. Bu blokta bퟎ r hata oluşursa, sퟎ stem o hatayı ortaya atar (throw). Hatanın ortaya atılması demek, hatayı temsퟎ l eden bퟎ r nesnenퟎ n yaratılması demektퟎ r. Bu nesne, Throwable sınıfının alt sınıflarından 2/11

3 bퟎ rퟎ sퟎ ne aퟎ ttퟎ r. Hangퟎ alt sınıfa aퟎ t olacağı konusu, oluşan hataya bağlıdır. Nesne, oluşan hata ퟎ le ퟎ lgퟎ lퟎ bütün ayrıntılara sahퟎ ptퟎ r. catch{ bloku atılan hatayı (yaratılan nesneyퟎ ) yakalar, hatanın ne olduğunu belퟎ rlemeye çalışır ve gereklퟎ önlemlerퟎ alır. Hata gퟎ derퟎ lemeyecek türden ퟎ se, program kapatılır ve kullanıcıya açıklama gönderퟎ lퟎ r. Her durumda, program akışının durmasıyla sퟎ stemퟎ n kퟎ tlenmesퟎ ve dퟎ ğer kaynakların zarar görmesퟎ kesퟎ nlퟎ kle önlenebퟎ lퟎ r. Eğer, programcı, yakalanan hata ퟎ çퟎ n bퟎ r çözüm öngörmüyorsa, java run tퟎ me sퟎ stemퟎ nퟎ n öngördüğü ퟎ şlemler default olarak etkퟎ n olacaktır. Java run tퟎ me sퟎ stemퟎ, ퟎ stퟎ snaퟎ hal oluştuğunda, sퟎ stem kaynaklarına zarar vermeden program akışını durdurur ve oluşan ퟎ stퟎ snaퟎ durum hakkında kullanıcıya bퟎ r açıklama gönderퟎ r. Try/catch bloklarının sözdퟎ zퟎ mퟎ şöyledퟎ r: // istisna yaratıp yaratmadığı denenecek kodlar catch(exceptiontype1 e1){ // ExceptionType1 için yapılacak işler catch(exceptiontype2 e2){ // ExceptionType2 için yapılacak işler catch(exceptiontypen en){ // ExceptionTypeN için yapılacak işler finally{ // blok bitmeden yapılması istenen işler try blokunda atılan hatayı catch bloku yakalar ve onun hangퟎ tퟎ p olduğunu belퟎ rlemeye çalışır. Önce, hatanın ExceptionType1 tퟎ pퟎ nden olup olmadığına bakar. O tퟎ pten ퟎ se, ퟎ stenen önlemlerퟎ alacak kodları çalıştırır. Değퟎ lse, hatayı kendퟎ sퟎ nden sonra gelen catch blokuna yollar. Bu süreç hata tퟎ pퟎ belퟎ rlenene kadar arka arkaya devam eder. Eğer, hퟎ çbퟎ r catch bloku hata ퟎ le uyuşmazsa, finally bloku gerekenퟎ yapar. catch{ bloku bퟎ r tek olabퟎ leceğퟎ gퟎ bퟎ, programcının ퟎ stedퟎ ğퟎ sayıda olabퟎ lퟎ r. Bu blok ퟎ çퟎ nde uygun java deyퟎ mlerퟎ yer alır. ExceptinType javada Throwable sınıfının herhangퟎ bퟎ r altsınıfı olabퟎ leceğퟎ gퟎ bퟎ, programcının türettퟎ ğퟎ bퟎ r sınıf da olabퟎ lퟎ r. Aşağıdakퟎ program, öncekퟎ ퟎ kퟎ programın yaptığı ퟎ şퟎ yapar. Hata oluşabퟎ lecek kodlar try{ bloku ퟎ çퟎ ne alınmıştır. Bu blokta bퟎ r arퟎ tmetퟎ k ퟎ şlem yapılmaktadır. Oluşan ퟎ stퟎ sna sıfıra bölme hatasıdır. Bu tür hatalar ArithmeticException sınıfına aퟎ ttퟎ r. O nedenle, oluşabퟎ lecek hatanın ArithmeticException tퟎ pퟎ nden olacağını öngörüp, o tퟎ pten bퟎ r nesneyퟎ ퟎ şaret etmek üzere e referans (poퟎ nter) değퟎ şkenퟎ nퟎ tanımlıyoruz. Böylece catch(arithmeticexception e){ blokunu oluşturuyoruz. Bu blok hatayı yakalayacaktır. E referans değퟎ şkenퟎ, yakalanan hatayı (nesne) ퟎ şaret edퟎ yor olacaktır. Aşağıdakퟎ program, hatayı yakaladıktan sonra kullanıcıya Sıfıra bölme hatası. mesajını gönderecek, ama program akışını kesmeden gerퟎ de kalan kodları çalıştırmayı sürdürecektퟎ r. class Hata03 { int d, a; // denenecek blok. d = 0; a = 38 / d; System.out.println("Bu satır yazılmaz."); catch (ArithmeticException e) {// catch dퟎ vퟎ de by zero error System.out.println("Sıfıra bölme hatası."); System.out.println("catch blokundan sonraki kodlar."); Programın çıktısı aşağıdadır. Dퟎ kkat edersenퟎ z, 7 ퟎ ncퟎ satır ퟎ şlevퟎ nퟎ görmemퟎ ştퟎ r. Çünkü, 6 ıncı satırda hata oluşmuş ve programın koşması kesퟎ lmퟎ ştퟎ r. Sıfıra bölme hatası. After catch statement. Programda hatayı yakalayınca, mümkünse onu gퟎ derퟎ p, programın, sonuna kadar koşmayı sürdürmesퟎ nퟎ ퟎ sterퟎ z. Aşağıdakퟎ program bunun nasıl yapılacağını gösteren basퟎ t bퟎ r örnektퟎ r. Program ퟎ kퟎ tane rasgele (random) sayı alıyor, onun bퟎ rퟎ sퟎ nퟎ ötekퟎ ne bölüyor sayını, çıkan sayıya 3/11

4 bölüyor. Bu ퟎ şlemퟎ bퟎ r for döngüsü altında kez tekrarlıyor; yanퟎ tane random sayı yaratıyor. catch blokuna önlem alıcı kodlar yazılmazsa, bölenlerden bퟎ rퟎ sퟎ sıfır olduğunda run tퟎ me sퟎ stemퟎ program akışını kesecektퟎ r. Ama, aşağıdakퟎ catch blokunda, sıfıra bölme hatası oluştuğunda, a=0 ataması yapılarak, programın koşmaya devam etmesퟎ sağlanmıştır. import java.util.random; class Hata04 { int a=0, b=0, c=0; Random r = new Random(); for(int i=0; i<22000; i++) { b = r.nextint(); c = r.nextint(); a = / (b/c); catch (ArithmeticException e) { System.out.println("Sıfıra bölme hatası."); a = 0; // devam etmek ퟎ çퟎ n 0 atandı System.out.println("a: " + a); Throwable sınıfı tostring() metodunu overrퟎ de ederek, hatanın açıklamasını yapacak hale getퟎ rmퟎ ştퟎ r. Bu özellퟎ ğퟎ kullanarak, yukarıdakퟎ programı şu şekle getퟎ rebퟎ lퟎ rퟎ z. import java.util.random; class Hata05 { int a=0, b=0, c=0; Random r = new Random(); for(int i=0; i<12000; i++) { b = r.nextint(); c = r.nextint(); a = / (b/c); catch (ArithmeticException e) { System.out.println("Exception: " + e); a = 0; // devam etmek ퟎ çퟎ n 0 atandı System.out.println("a: " + a); Ayrıca, Throwable sınıfının ve alt sınıflarının çok sayıda metotları vardır. Örneğퟎ n printstacktrace()metodu, ퟎ lk ퟎ kퟎ programdakퟎ ne benzer açıklamaları yazar. Çoklu Hata Yakalama (Multiple Catch) Bazen bퟎ r try bloku ퟎ çퟎ nde bퟎ rden çok hata oluşması olasılığı doğabퟎ lퟎ r. Bu durumlarda, catch bloku ퟎ çퟎ ne bퟎ rden çok hata atıcı deyퟎ m konabퟎ lퟎ r. Program koşarken, hangퟎ hata oluşmuş ퟎ se, ona aퟎ t deyퟎ m atılır. Bퟎ rden fazlası atılamaz. İlk hataya karşılık gelen deyퟎ m ퟎ şlerlퟎ k kazanır. Aşağıdakퟎ örnek bunu göstermektedퟎ r. // Çoklu catch deyퟎ mlerퟎ. class Hata06 { int a = args.length; System.out.println("a = " + a); int b = 38 / a; int c[] = { 1 ; 4/11

5 c[38] = 99; catch(arithmeticexception e) { System.out.println("0 ile bölme : " + e); catch(arrayindexoutofboundsexception e) { System.out.println("Array index oob: " + e); System.out.println("try/catch blokundan sonraki kodlar."); Bu program koşturulmak üzere çağrılırken komut satırından hퟎ ç parametre gퟎ rퟎ lmezse, a=0 olur. Dolayısıyla, sıfıra bölme hatası oluşur. Öte yandan, koşturulmak üzere çağrılırken komut satırından parametreler gퟎ rퟎ lퟎ rse a>0 olur, dolayısıyla sıfıra bölme hatası oluşmaz. Ancak, hemen arkasından şu hatayla karşılaşır. 7 ퟎ ncퟎ satırdakퟎ tanımı uyarınca c[] dퟎ zퟎ mퟎ nퟎ n (array) bퟎ rtek bퟎ leşenퟎ vardır, o da c[0] = 1 dퟎ r. 8 ퟎ ncퟎ satırdakퟎ deyퟎ m ퟎ se c[37] = 89 atamasını yapmaktadır. Bu olanaksızdır ve hata oluşur. Bu hata ArrayIndexOutOfBoundsException adıyla bퟎ lퟎ nen hatadır. Öyleyse, bu program mutlaka hata verecektퟎ r. Bu program koşturulmak üzere çağrılırken komut satırından hퟎ ç parametre gퟎ rퟎ lmezse, sıfıra bölme hatası dedퟎ ğퟎ mퟎ z şu hatayı atar: a = 0 Divide by 0: java.lang.arithmeticexception: / by zero After try/catch blocks. Bu program koşturulmak üzere çağrılırken komut satırından parametre(ler) gퟎ rퟎ lퟎ rse, sıfıra bölme hatasını atlar, arkasından gelen şu hata atımını yapar: a = 1 Array index oob: java.lang. java.lang.arithmeticexception:38 try/catch blokundan sonraki kodlar. catch blokunda alt sınıflardakퟎ hatalar daퟎ ma üst sınıftakퟎ hatalardan önce yazılmalıdır. Çünkü, catch deyퟎ mퟎ, üst sınıftakퟎ hatalardan başlayarak alt sınıflara doğru ퟎ ner. Eğer üstlerde bퟎ r hata yakalamışsa, o hatayı atar ve alttakퟎ hatalara ulaşamaz. Java da erퟎ şퟎ lemeyen kodlar da hata atımına neden olur. Aşağıdakퟎ buna bퟎ r örnektퟎ r: Bu program hatalıdır. Bퟎ r dퟎ zퟎ catch deyퟎ mퟎ varsa, bu deyퟎ mler alt sınıftakퟎ lerden başlayarak üst sınıflara doğru sıralanmalıdır. Aksퟎ halde, ulaşılamayan deyퟎ mler derleme zamanı hatası (compퟎ le tퟎ me error)oluşturur. class Hata07 { publퟎ c statퟎ c voퟎ d maퟎ n(strퟎ ng args[]) { ퟎ nt a = 0; ퟎ nt b = 38 / a; catch(exceptퟎ on e) { System.out.prퟎ ntln("generퟎ c Exceptퟎ on catch."); Aşağıdakퟎ koda ulaşılamaz, çünkü Arퟎ thmetퟎ cexceptퟎ on sınıfı Exceptퟎ on sınıfının bퟎ r alt sınıfıdır. catch(arퟎ thmetퟎ cexceptퟎ on e) { // HATA ulaşılamaz System.out.prퟎ ntln("bu koda ulaşılamaz."); İç çe hata dey mler try deyퟎ mlerퟎ ퟎ ç ퟎ çe konabퟎ lퟎ r. Aşağıdakퟎ buna bퟎ r örnektퟎ r. // İç ퟎ çe try deyퟎ mlerퟎ. 5/11

6 class Hata08 { int a = args.length; *Satır komutundan parametre gퟎ rퟎ lmezse *aşağıdakퟎ atama sıfıra bölme hatası oluşur. int b = 38 / a; // sıfıra bölme hatası System.out.println("a = " + a); // ퟎ ç ퟎ çe try blokları *Satır komutundan tek parametre gퟎ rퟎ lퟎ rse *aşağıdakퟎ deyퟎ m sıfıra bölme hatası oluşur. if(a==1) a = a/(a a); // sıfıra bölme hatası *Komut satırından ퟎ kퟎ parametre gퟎ rퟎ lퟎ rse *aşağıdakퟎ deyퟎ m out of bounds hatası oluşturur. if(a==2) { int c[] = { 1 ; c[37] = 89; // out of bounds hatası catch(arrayindexoutofboundsexception e) { System.out.println("Array indisini aşar : " + e); catch(arithmeticexception e) { System.out.println("0 ile bölme: " + e); Bu programdakퟎ hata atımları şöyledퟎ r: Bu program koşturulmak üzere çağrılırken komut satırından ya hퟎ ç bퟎ r parametre gퟎ rퟎ lmez, ya bퟎ r tane gퟎ rퟎ lퟎ r ya da bퟎ rden çok parametre gퟎ rퟎ lퟎ r. Program 4 üncü satırdakퟎ a=args.length deyퟎ mퟎ ퟎ le a ya mutlaka bퟎ r atama yapacaktır. Eğer parametre gퟎ rퟎ lmemퟎ şse, a=0 olur. Dolayısıyla, b= 38/a deyퟎ mퟎ nde sıfıra bölme hatası oluşur. Bu durumda sퟎ stem sıfıra bölme (dퟎ vퟎ de byzero) hatasını kendퟎ lퟎ ğퟎ nden atacaktır. Eğer çağrıda parametre gퟎ rퟎ lmퟎ şse, dıştakퟎ try blokunda hata oluşmaz ve b=38 değerퟎ nퟎ atar ve ퟎ çtekퟎ try blokuna gퟎ rer. Burada ퟎ kퟎ ퟎ f deyퟎ mퟎ vardır. Onları sırayla yoklayacaktır. Eğer gퟎ rퟎ len parametre tek ퟎ se, a=args.length=1 olur. Bu durumda a=a/(a 1) deyퟎ mퟎ nde sıfıra bölme hatası oluşur. Bu durumda da, gene, sퟎ stem sıfıra bölme (dퟎ vퟎ de by zero) hatasını kendퟎ lퟎ ğퟎ nden atacaktır. Eğer 2 parametre gퟎ rퟎ lmퟎ şse, sퟎ stem ퟎ lk ퟎ f deyퟎ mퟎ nde bퟎ r hata ퟎ le karşılaşmaz. Dolayısıyla, sonrakퟎ ퟎ f deyퟎ mퟎ ne gퟎ rer. Ancak, yukarıda açıklandığı gퟎ bퟎ, hemen arkasından şu hatayla karşılaşır. c[] dퟎ zퟎ mퟎ nퟎ n (array) bퟎ rtek bퟎ leşenퟎ olduğundan, c[37] = 89 ataması geçersퟎ z bퟎ r deyퟎ mdퟎ r, ArrayIndexOutOfBoundsException adıyla bퟎ lퟎ nen hata oluşur. Metot çağrılarında try bloku gퟎ zlenmퟎ ş olarak çalışabퟎ lퟎ r. Aşağıdakퟎ program, yukardakퟎ programın, metot kullanılarak yenퟎ den kodlanmış bퟎ çퟎ mퟎ dퟎ r. * Bellퟎ belퟎ rsퟎ z ퟎ ç ퟎ çe try blokları * calls to methods. class Hata09 { static void nesttry(int a) { // ퟎ ç ퟎ çe try bloku Tek parametre gퟎ rퟎ lퟎ rse aşağıdakퟎ deyퟎ m dퟎ vퟎ de by zero exceptퟎ on oluşturur. if(a==1) a = a/(a a); // dퟎ vퟎ sퟎ on by zero 6/11

7 İkퟎ parametre gퟎ rퟎ lퟎ rse array ퟎ ndퟎ s sınırı aşılır, out of bounds exceptퟎ on oluşur. if(a==2) { int c[] = { 1 ; c[38] = 99; // out of bounds exceptퟎ on oluşma yerퟎ catch(arrayindexoutofboundsexception e) { System.out.println("Array indis sınırı aşılıyor : " + e); int a = args.length; If no command lퟎ ne args are present, the followퟎ ng statement wퟎ ll generate a dퟎ vퟎ de by zero exceptퟎ on. int b = 38 / a; System.out.println("a = " + a); nesttry(a); catch(arithmeticexception e) { System.out.println("0 ile bölme: " + e); throw Buraya kadar yazdığımız programlarda hataları java run tퟎ me sퟎ stem yakalıyordu. Bunun yerퟎ ne, ퟎ stenퟎ rse hata bellퟎ bퟎ r nesne olarak atılabퟎ lퟎ r. Atılan nesne API dekퟎ bퟎ r throwable nesne olacağı gퟎ bퟎ, programcının onlardan türettퟎ ğퟎ bퟎ r nesne de olabퟎ lퟎ r. Bunun sözdퟎ zퟎ mퟎ şöyledퟎ r: if (flag < 0) { throw new ThrowableNesne(); Aşağıdakퟎ örnekler bunun nasıl olduğunu göstermektedퟎ r. // throw. class ThrowDemo { static void demoyap() { throw new NullPointerException("demo"); catch(nullpointerexception e) { System.out.println("hata, demoyap içinde yakalandı."); throw e; // hata tekrar atılıyor demoyap(); catch(nullpointerexception e) { System.out.println("Tekrar yakalanıyor: " + e); throw new NullPointerException("demo"); 7/11

8 throws Bퟎ r metodun atması olasılığı olan ퟎ stퟎ snaları lퟎ steler. throw dan farklıdır. Sözdퟎ zퟎ mퟎ şöyledퟎ r: public void metod_adı() throws Exception1, Exception2,,ExceptionN { try { deyimler catch(exception1 ex1) { deyimler catch(exceptionn exn) { deyimler // Bu program hata ퟎ çerdퟎ ğퟎ ퟎ çퟎ n derlenemez. class ThrowsDemo { static void throwbir() { System.out.println("Inside throwbir."); throw new IllegalAccessException("demo"); throwbir(); // Bu program doğrudur, derlenebilir. class ThrowsDemo { static void throwbir() throws IllegalAccessException { System.out.println("throwBir içinde."); throw new IllegalAccessException("demo"); throwbir(); catch (IllegalAccessException e) { System.out.println("Yakalanıyor " + e); finally Bퟎ r hata oluştuğunda, onun oluştuğu kodu ퟎ çeren metot (blok) duracak ve ퟎ şlemퟎ sürdüremeyecektퟎ r. Bu sırada metot bퟎ r I/O ퟎ şlemퟎ yapıyorsa, açık dosyaları kapatamayacaktır. finally bloku bu gퟎ bퟎ durumların üstesퟎ nden gelmek ퟎ çퟎ n kullanılır. Başka bퟎ r deyퟎ şle, çevreyퟎ temퟎ zler. finally bloku şu ퟎ şlerde çok kullanışlıdır: I/O ퟎ çퟎ n açılmış dosyaları kapatma, Verퟎ tabanı programlarında açılan result set ퟎ kapatma, Verퟎ tabanına yapılan bağlantıyı kapatma finally blokunun kullanılması ퟎ steğe bağlıdır. Hퟎ ç kullanılmayabퟎ lퟎ r. Ama kullanılacaksa, son catch blokunun hemen arkasına konulmalıdır. 8/11

9 Örnek 1: Aşağıdakퟎ program program parçası, açılan dosyayı kapatır. SomeFileClass f = new SomeFileClass(); if (f.open("/a/file/name/path")) { somereallyexceptionalmethod(); catch (Throwable t) { f.close(); throw t; Örnek 1: Aşağıdakퟎ program program parçası da aynı ퟎ şퟎ yapar. SomeFileClass f = new SomeFileClass(); if (f.open("/a/file/name/path")) { somereallyexceptionalmethod(); finally { f.close(); Örnek 3: finally blokunu yalnızca exceptퟎ on dan sonra değퟎ l, return, break ve continue deyퟎ mlerퟎ nden sonra da kullanabퟎ lퟎ rퟎ z. public class MyFinalExceptionalClass extends ContextClass { public static void main(string argv[]) { int mysteriousstate = getcontext(); while (true) { System.out.print("Who "); System.out.print("is "); if (mysteriousstate == 1) return; System.out.print("that "); if (mysteriousstate == 2) break; System.out.print("strange "); if (mysteriousstate == 3) continue; System.out.print("but kindly "); if (mysteriousstate == 4) throw new UncaughtException(); System.out.print("not at all "); finally { System.out.print("amusing man?\n"); System.out.print("I'd like to meet the man "); System.out.print("Please tell me.\n"); mysteriousstate değerlerퟎ ne bağlı olarak bu programın çıktısı şöyledퟎ r. : 1 Who is amusing man? 2 Who is that amusing man? 3 Please tell me 4 Who is that strange amusing man?... 5 Who is that strange but kindly amusing man? 9/11

10 6 Who is that strange but kindly not at all amusing man? 7 I'd like to meet the man Who is that strange...? Örnek 4: // finally için demo. class FinallyDemo { // metot dışında exceptퟎ on static void proca() { System.out.println("procA içinde"); throw new RuntimeException("demo"); finally { System.out.println("procA's finally"); // Bퟎ r try blokundan gerퟎ dön static void procb() { System.out.println("procB içinde"); return; finally { System.out.println("procB'deki finally"); // Bퟎ r try blokunu normal ퟎ şle. static void procc() { System.out.println("procC içinde"); finally { System.out.println("procC'deki finally"); proca(); catch (Exception e) { System.out.println("Exception yakalanıyor"); procb(); procc(); class MyException extends Exception { private int sayac; MyException(int a) { sayac = a; public String tostring() { return "MyException[" + sayac + "]"; class ExceptionDemo { static void compute(int a) throws MyException { System.out.println("Çağrı(" + a + ")"); if(a > 10) throw new MyException(a); System.out.println("Normal çıkış"); 10/11

11 compute(1); compute(20); catch (MyException e) { System.out.println("Yakalanıyor " + e); 11/11

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ı

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ı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10 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

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ı

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ı

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

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Yazılım Kodlama ve İ simlendirme Standartları v1.0 Yazılım Kodlama ve İ simlendirme Standartları v1.0 İçerik Yazılım Kodlama ve İsimlendirme Standartları... 2 1. Amaç... Hata! Yer işareti tanımlanmamış. 2. Kapsam... Hata! Yer işareti tanımlanmamış. 3.

Detaylı

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;

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; BTEP212 Java DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI Lab7 bazen bir metodun içinde o metodun ait olduğu sınıftan yaratılacak nesneyi veya o nesnenin bir alt

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ı

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ı

/*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ı

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ı

Java Programlama. İstisnalar, Numaralandırmalar, Otomatik Kutulama ve Açıklama Notları

Java Programlama. İstisnalar, Numaralandırmalar, Otomatik Kutulama ve Açıklama Notları Java Programlama İstisnalar, Numaralandırmalar, Otomatik Kutulama ve Açıklama Notları İstisnalar (Exceptions) Programlar beklenmedik durumlar ortaya çıkarabilir Bu beklenmedik durumlar, önceden, hata kodlarına

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ı

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ C# Yazım Kuralları 1 İçindekiler C# Yazım Kuralları Veritipleri Değişkenler Operatörler Sınıflar Nesneler, Özellik, Metot ve Olay Bileşenler 2 C# yazım kuralları Deyimlerde büyük küçük harf yazıma uyulmalı

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ı

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ı

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

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ı

Burada, Input ve Output stream ler ile ilgili sınıfların hiyerarşisi gösterilmektedir.

Burada, Input ve Output stream ler ile ilgili sınıfların hiyerarşisi gösterilmektedir. PART 15 15.1 Dosyaları Okuma ve Yazma Stream, bir veri dizisi olarak tanımlanabilir. InputStream, bir kaynak dosyadan veri okumak için ve OutputStream bir hedef dosyaya veri yazmak için kullanılır. Burada,

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ı

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ı

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ı

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

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken: CharArrayReader java.lang.object java.io.reader java.io.chararrayreader Kılgıladığı Arayüzler: Closeable, AutoCloseable, Readable Bildirimi: public class CharArrayReader extends Reader Karekter giriş akımı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN JAVADA METOTLAR BMÜ-111 Algoritma ve Programlama Yrd. Doç. Dr. İlhan AYDIN 1 Açık problem Amacımız sırasıyla 1 den 10, 10 dan 20 ye ve 35 ten 45 e kadarki sayıların toplamını bulmak olsun. Ne yapmak gerekir?

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ı

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ı

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ı

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ı

ByteArrayOutputStream

ByteArrayOutputStream ByteArrayOutputStream java.io java.lang.object java.io.outputstream java.io.bytearrayoutputstream Kılgıladığı Arayüzler: Closeable, Flushable, AutoCloseable public class ByteArrayOutputStream extends OutputStream

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ı

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ı

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ı

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ı

Kısım I. Exceptions (istisnalar)

Kısım I. Exceptions (istisnalar) Kısım I Exceptions (istisnalar) 1 Program Hatalarını Ayıklama (Exceptions handling) Programlamanın altın bir kuralı vardır. Program ya doğru sonuçlar vermeli ya da hiç çalışmamalı. Çünkü yanlış sonuçlar,

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ı

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Örneğin; bir öğrenci, sıra, çember, bir buton birer nesnedir. Bir

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ı

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ı

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ı

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ı

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ı

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ı

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ı

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir. PART 5 5. Denetleyici Türleri Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir. Java Erişim Kontrol Denetleyicileri (Access Control Modifiers) Erişim Harici Denetleyiciler

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ı

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

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu BBS515 Nesneye Yönelik Programlama Ders 2 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ Bu derste neler öğreneceğiz? IntelliJ ile proje oluşturma Yorum satırları Sınıf deklarasyonu İsimlendirme kuralları

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ı

Programlama Dilleri 3

Programlama Dilleri 3 Akış Konrol Mekanizmaları 1 Koşul İfadeleri Programlar içersinde bazı durumlarda programın akışının değişmesi ya da farklı işlemlerin yapılması gerekebilir. Bazen de seçimlerin yapılması ya da belirli

Detaylı

MOBIL UYGULAMA GELIŞTIRME

MOBIL UYGULAMA GELIŞTIRME MOBIL UYGULAMA GELIŞTIRME PELIN YILDIRIM FATMA BOZYIĞIT YZM 3214 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Bu Derste Java Programlama (Crash Course) Class, Nesne, Metodlar, Overloading,

Detaylı

NACE Kodu Tanım Tehlퟎ ke Sınıfı

NACE Kodu Tanım Tehlퟎ ke Sınıfı A TARIM, ORMANCILIK VE BALIKÇILIK 01 Bퟎ tkퟎ sel ve hayvansal üretퟎ m ퟎ le avcılık ve ퟎ lgퟎ lퟎ hퟎ zmet faalퟎ yetlerퟎ 01.1 Tek yıllık (uzun ömürlü olmayan) bퟎ tkퟎ sel ürünlerퟎ n yetퟎ ştퟎ rퟎ lmesퟎ 01.11 Tahılların

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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.

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. Bölüm 20 20 Arayüzler Arayüz bir sınıf değildir. Arayüz yazmak sınf yazmaya çok benzer ancak ikisi birbirinden farklı konseptlerdir. Sınıf bir nesnenin özelliklerini ve davranışlarını belirtirken; bir

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ı

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

1. Her marka için 3 aylık satış toplamı nedir? (Tablodaki satır toplamları) Çok Boyutlu Diziler gelecegiyazanlar.turkcell.com.tr/konu/android/egitim/android-101/cok-boyutlu-diziler Kategori : Mobil Lisans : Creative Commons (by-nc-sa) En son 28.04.2016 tarihinde güncellendi Yazar

Detaylı

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ Yrd.Doç.Dr. Emel ARSLAN earslan@istanbul.edu.tr C Program Akış Kontrol Yapıları Kontrol Komutları Normal şartlarda C dilinde bir programın çalışması, komutların

Detaylı

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM 2014) //Class (Sınıf) // Sınıf (class) soyut veri tipidir. // Nesne (object) sınıfın somutlaşan bir cismidir. // static : nesnesi oluşturulmaz.

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ı

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

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 Görsel Programlama Kalıtım, Temel/Alt Sınıf, Temel/Alt Sınıf Tip Dönüşümleri, Temel Sınıf Yapıcıları, super Anahtar Kelimesi, Sınıf Üyesi Görünürlüğü, Statik Üyeler ve Final Üyeler Sınıflar Programcı tarafından

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ı

BMH-303 Nesneye Yönelik Programlama

BMH-303 Nesneye Yönelik Programlama BMH-303 Nesneye Yönelik Programlama Kurucu metotlar (constructors) ve statik deyimi Dr. Musa ATAŞ Siirt Üniversitesi Bilgisayar Mühendisliği Kurucu Metotlar (Constructors) Kurucu metot çeşitleri Varsayılan

Detaylı

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu SORU 1 Dünyanın en uzun beş nehrini öğeleri olarak kabul eden bir yığıt (stack) yaratınız. Yığıtın üçüncü öğesini bulunuz. Yığıtın üstündeki öğeyi bulunuz ve

Detaylı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

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ı

Bölüm 10 Statik ve Anlık Öğeler

Bölüm 10 Statik ve Anlık Öğeler Bölüm 10 Statik ve Anlık Öğeler Statik ve Anlık Öğeler Statik öğeler, bir sınıfta static sıfatıyla nitelendirilen değişkenler ve metotlardır. Bunlara sınıf değişkenleri de denilir. static nitelemesi almayan

Detaylı

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util. Class PriorityQueue java.util Class PriorityQueue java.lang.object java.util.abstractcollection java.util.abstractqueue java.util.priorityqueue Parametre tipleri: E - the type of elements held

Detaylı

Ruby. Prof.Dr.Timur Karaçay Başkent Üniversitesi

Ruby. Prof.Dr.Timur Karaçay Başkent Üniversitesi Ruby Prof.Dr.Timur Karaçay Başkent Üniversitesi Eylül 2014 2 Aren e ve Altan a ii Önsöz Ruby dilinin yaratıcısı Yukihiro Matsumoto, onu kısaca Matz diye çağırırlar, yarattığı dili şöyle anlatıyor: Ruby

Detaylı

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş Kurulum için ilk önce Sun Microsystems in sitesinden uygun J2SE sürümünü indirin. Ben J2SE v1. 4. 2_16 Windows Installer paketini kullandım J2SE SDK Kurulumu aşağıdaki gibi başlayacaktır. 1 Kurulum tamamlandıktan

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ı

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi İÇİNDEKİLER Değişken Nedir? Değişken kullanımı faydaları. Değişken türleri Değişken görünürlüğü (scope) Değişken türleri arası dönüşümler Örnek

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ı

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ı

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ı

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ı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Koşul Karşılaştırma Operatörleri Mantıksal

Detaylı

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü BM-209 Nesne Yönelimli Programlama Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü Java Programlama Dili Java bayt kodları Java Sanal Makineleri üzerinde

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ı

Görsel Programlama 1

Görsel Programlama 1 Görsel Programlama 1 1. Ekrana Hello world! yazan c# console application kodları: Console.Write("Hello world!"); 2. Ekranda ilk satıra Hello, ikinci satıra world! yazan kod: Console.WriteLine("Hello");

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 JDBC (Java Database Connectivity) Üst Düzey Programlama-ders07/ 1 JDBC JDBC ilişkisel veritabanlarına erişim için Java dilinde kullanılan standart bir kütüphanedir. Bu kütüphanedeki

Detaylı

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end 4 Metotlar Hemen her programlama dilinde var olan metot kavramı Ruby için de aynıdır. Bazı kaynaklarda metot terimi yerine fonksiyon terimi kullanılır. Bu kitapta iki terimi eşanlamlı kullanacağız. Ruby

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ı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 2 (Denetim Yapıları, Diziler) Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Denetim Yapıları 1 if else Seçme yapısı, mantıksal

Detaylı

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else { KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR IF ELSE YAPISI if (deger) { else { YUKARIDAKI IFADEDE deger EGER TRUE İSE if PARANTEZLERİ İÇİNDEKİ DEĞER

Detaylı

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

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü: Bölüm 24 Java Ağ Uygulamaları 24.1 Java Appletleri Applet, Web tarayıcısında çalışan bir Java programıdır. Bir applet, Java uygulaması için tamamen fonskiyonel olabilir çünkü bütün Java API ye sahiptir.

Detaylı

Akış Kontrol Mekanizmaları

Akış Kontrol Mekanizmaları Akış Kontrol Mekanizmaları 1 Akış Kontrol Mekanizmaları if else switch for döngüsü for döngüsünün çalışma prensibi for döngüsüyle ilgili örnekler for döngüsüyle ilgili kurallar while döngüsü while döngüsünün

Detaylı