C# ve T-SQL Geliştiriciler için Java ve Oracle. Yalçın Kaya. Editör C. Banu Üçüncüoğlu 19-0

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

Download "C# ve T-SQL Geliştiriciler için Java ve Oracle. Yalçın Kaya. Editör C. Banu Üçüncüoğlu 19-0"

Transkript

1 YAZILIM VE VERİTABANI C# ve T-SQL Geliştiriciler için Java ve Oracle Yalçın Kaya Editör C. Banu Üçüncüoğlu 19-0

2 C# ve T-SQL Geliştiriciler için Java ve Oracle Yalçın Kaya Editör: C. Banu Üçüncüoğlu Kapak Tasarımı: Melih Sancar Grafik Tasarım: Tuna Erkan Grafik Uygulama: Soner Işık Genel Yayın Yönetmeni: Mehmet Çömlekçi 1. Basım: Şubat 2008 Bilge Adam Yayınları: 21 Eğitim Yayınları Dizisi: 21 ISBN: Copyright 2007, Bilge Adam Bilgisayar ve Eğitim Hizmetleri San. ve Tic. A.Ş. Eserin tüm yayın hakları Bilge Adam Bilgisayar ve Eğitim Hizmetleri San. ve Tic. A.Ş. ye aittir. Yayınevinden yazılı izin alınmadan kısmen ya da tamamen alıntı yapılamaz, hiçbir şekilde kopya edilemez, çoğaltılamaz ve tekrar yayımlanamaz. Bilge Adam ın öğrencilerine ücretsiz armağanıdır, para ile satılamaz. Bilge Adam Bilgisayar ve Eğitim Hizmetleri San. ve Tic. A.Ş. 19 Mayıs Mahallesi, 19 Mayıs Caddesi, UBM Plaza, No: 59-61, Kat: 4-7; Şişli, İstanbul Telefon: (212) (212) Faks: (212) Tanıtım nüshasıdır, para ile satılamaz.

3 İçindekiler Java ya Giriş 3 Java Nedir? 3 Windows Ortamında Java Kurulumu 3 Java Uygulamaları Nasıl Çalışır? 7 Basit Veri Tipleri 9 Ondalıklı Tipler 11 Mantıksal Tip 11 Karakter Tipi 11 Aritmetik İşlemler ve Taşma 11 Java da Operatörler 14 Kaydırma (Shift) İşlemleri 15 İşlemlerde Parantez Kullanımı 16 Karar Vermek ve Koşullu İfadeler 16 Döngüler 23 While Döngüsü 23 do Döngüsü 24 for Döngüsü 24 break ve continue Deyimleri 25 Niteleyiciler (Modifiers) 29 Access Modifiers (Erişim Niteleyicileri) 29 Niteleyicilerde Metod Ezme (Access Modifiers Overriding) 30 Diğer Niteleyiciler 30 Casting ve Conversion 35 Basit Tiplerde Conversion 36 Basit Tiplerde Conversion: Atama 36 Basit Tiplerde Conversion: Metod Çağırma 38 Basit Tiplerde Conversion: Aritmetik Yükseltme 38 Basit Tiplerde Casting 39 Referans Tiplerde Conversion 40 Referans Tiplerde Conversion: Atama 40 Referans Tiplerde Csonversion: Metod Çağırma 41

4 IV İçindekiler Yapısal Programlama 45 Yapısal Programlama Nedir? 45 Nesne Yönelimli Programlamanin Temel Bileşenleri 45 Nesne Yönelimli Programlamanın Temel Kavramları 51 Kapsülleme (Encapsulation) 51 Swing 67 Swing e Giriş 67 JButton 68 JLabel 69 JTextField 70 Event Handling Mekanizması 71 JTextArea 74 JOptionPane 75 JCheckBox 77 JRadioButton 79 JComboBox 81 JList 83 Mouse Event lerinin Yönetilmesi: 89 Klavye Event lerinin Yönetilmesi 94 JDBC 103 Veritabanı Bağlantısının Kurulması 108 Veri Değiştirme Komutları (insert, update, delete) 109 Veri Sorgulama Komutları (Select) 110 Parametreli SQL İfadelerinin Çalıştırılması 112 Stored Procedure lerin Çalıştırılması 113 JSP 123 JSP Teknolojisinde Kullanılan Etiketler 128 JSP Direktifleri 128 JSP Script Etiketleri 129 Form Verilerinin Kullanılması 129 Durum Yönetimi 131 JAVA I/O 143 Dosyalar ve Dizinler 143

5 İçindekiler FilterInputStream Sınıfları 145 FileInputStream ve FileOutputStream Sınıflarının Kullanımı 146 Reader ve Writer Sınıfları: 150 Standart Giriş-Çıkış Biriminin Kullanılması: 154 Java ile Ağ Programlama: 155 Oracle Veritabanı Ailesi 161 Oracle Üzerinde Uygulama Geliştirme 161 Oracle Veri Tabanı Sisteminin Kurulması 161 Tablespace 167 Undo Tablespace 167 Oracle da Veri Tabanı Oluşturmak 168 Temel Veri Tipleri 179 Oracle da Kullanıcı Yönetimi ve Güvenlik 179 Oracle Üzerinde Programlama 185 PL/SQL Nedir? 185 SQL Plus 185 TOAD 187 PL/SQL ile Programlama 189 PL/SQL de Kontrol Yapıları 191 PL/SQL de Alfanümerik Tipler 201 PL/SQL de Mantıksal Tipler 207 PL/SQL de Tarih ve Zaman Tipleri 207 Referans Tipleri 213 LOB (Large Object) Tipleri 216 PL/SQL de Döngü Yapıları 216

6

7 1Java ya Giriş

8 1 Java ya Giriş Java Nedir? Java Uygulamaları Nasıl Çalışır? Basit Veri Tipleri Java da Operatörler

9 Java ya Giriş Bölüm Hedefleri: Java platformu üzerinde Java diliyle basit uygulamalar yazmak. Temel veri tiplerini tanımak. Java Nedir? Java, işlemci mimarisinden ve işletim sisteminden bağımsız olarak tasarlanmış bir platformdur. Aynı zamanda da bu platform üzerinde uygulama geliştirilen dilin adıdır. Microsoft.NET platformuyla karşılaştırdığımızda.net platformuna karşılık gelen yapının adı Java olduğu gibi C#.NET, Visual Basic.NET gibi.net dillerine karşılık gelen dilin adı da Java dır. Bu açıklamadan anlaşılacağı gibi Microsoft.NET platformundan farklı olarak Java platformunda uygulama geliştirilebilecek tek dil vardır. Java platformu pek çok yönden Microsoft.NET platformuna benzediği gibi Java dili de yetenekleri bağlamında C# diline çok benzer. Java platformu da Microsoft.NET platformu ve modern nesne yönelimli diller gibi geniş bir sınıf kütüphanesine sahiptir. Yine.NET platformuna benzer olarak bir Java uygulamasının çalışması için doğrudan işletim sistemi kullanılmaz. Bu sebeple bir Java uygulaması, işletim sistemine ve mimari platforma göre geliştirilmiş olan JVM (Java Virtual Machine) aracılığıyla çalıştırılır. Java ile uygulama geliştirme için kullanılan ortamlar (IDE Integrated Development Environment),.NET için kullanılan ortamlara göre çok daha fazla sayıdadır ve kolaylık olarak farklılık gösterir. Yaygın olarak kullanılan bütünleşik geliştirme ortamlarından (IDE) biri Eclipse tir. Eclipse i adresinden indirebilirsiniz. Kitaptaki örnekleri gerçekleştirmek için herhangi bir bütünleşik geliştirme ortamı indirmenize gerek yoktur, bütün örnekleri Windows üzerinde Notepad ya da herhangi bir metin editörü ile gerçekleştirebilirsiniz. Windows Ortamında Java Kurulumu Java platformunu Windows işletimi üzerinde kurmak ve uygulamaları yazabilir hale gelmek için öncelikle Java Development Kit i (JDK) bilgisayarınızda kurmalısınız. JDK nın sürümlerini adresinden indirebilirsiniz. İndirdiğiniz dosyayı Windows un tüm sürümlerinde kurabilirsiniz. Kurulumu gerçekleştirdikten sonra Windows ortamında çevre değişkenleri (environment variables) üzerinde işlem yapmamız gerekir. Komut satırında herhangi bir noktadan derleme ve çalıştırma programlarını kullanabilmek için Path değişkenine Java yı kurduğumuz dizinin içindeki bin dizinini eklemelisiniz.

10 Bölüm 1 Uygulama 1.1: Windows XP: 1 Şekil 1 de gösterilen, Bilgisayarım (My Computer) ikonunu sağ tıklayın. Açılan menüde Özellikler (Properties) öğesini seçin. Şekil Şekil 2 de gösterildiği gibi, açılan pencerede Gelişmiş (Advanced) sekmesini tıklayın. Şekil 2 de gösterildiği gibi, gelen pencerede Çevre Değişkenleri (Environment Variables) butonuna tıklayın. Şekil 2 4. Şekil 3 te gösterilen, Sistem Değişkenleri (System Variables) içinde Path i bulun ve en sonuna ; ekleyin.

11 Java ya Giriş Şekil 3 5. Şekil 4 te olduğu gibi, sonuna da <Java yi kurduğunuz yer>\<jdkxxx>\bin yazın. şekil 4 Windows Vista: 1 Şeki 5 daki gibi, Bilgisayarım (My Computer) ikonunu sağ tıklayın. Açılan menüde Özellikler (Properties) öğesini seçin. Şekil 5

12 Bölüm 1 2. Şekil 6 de gösterilen, Tasks bölümünden Advanced System Settings link ine tıklayın. Şekil 6 3 Şekil 8 de gösterildiği gibi, gelen pencerede Çevre Değişkenleri (Environment Variables) butonuna tıklayın. Şekil 7

13 Java ya Giriş 4. Şekil 8 da gösterildiği gibi, Sistem Değişkenleri (System Variables) içinde Path i bulun ve en sonuna ; ekleyin. Şekil 8 5. Şekil 9 daki gibi, sonuna da <Java yi kurduğunuz yer>\<jdkxxx>\bin yazın. Java Uygulamaları Nasıl Çalışır? Bir Java uygulamasının makinenizde çalışması için JVM in kurulu olması gerekir. JVM Microsoft.NET platformunun IL (Intermediate Language - MSIL) üzerinden çalışması mantığına benzer bir mantıkla çalışır. Java tarafında IL e karşılık gelen yapı bytecode dur. JVM sadece bytecode üzerinden çalışır. Bu sebeple yazmış olduğunuz Java kaynak kodunu öncelikle Java derleyicisiyle derleyerek bytecode a çevirmelisiniz. Bununla birlikte dikkat edilmesi gereken bir nokta da bir Java sınıfının derlenebilmesi için kaynak kodu tutan.java uzantılı dosyanın adının, içindeki public sınıfın adıyla aynı olması gerektiğidir. Örnek Uygulama 1.1: Şekil 9 1 public class IlkJavaUygulamasi 2 { 3 public static void main( String[] args) 4 { 5 System.out.println( Ilk Java Uygulamasi ); 6 } 7 }

14 Bölüm 1 İşlem adımları: Örnekleri kolaylık açısından Windows ta oluşturacağınız bir dizin içinde toparlamanız faydalı olacaktır Yukarıdaki kodu herhangi bir metin editöründe yazın ve IlkJavaUygulamasi.java adıyla kaydedin. Command Prompt u açın. Dosyayı kaydettiğiniz dizine girin. javac IlkJavaUygulamasi.java ifadesini çalıştırın. Eğer hata almazsanız IlkJavaUygulamasi.class dosyasının kaynak kodla aynı yerde oluştuğunu görmelisiniz. Java IlkJavaUygulamasi ifadesini çalıştırdığınızda komut satırında Ilk Java Uygulamasi ifadesini görmelisiniz. Uygulamanın açıklaması: 1 numaralı satırda C# ta olduğu gibi IlkJavaUygulamasi adında bir sınıf tanımlanır. Java dilinde de, C# ta olduğu gibi kod blokları sınıfların içinde yer almalıdır. 2 numaralı ve 4 numaralı satırlarda { (küme parantezi, curly brace) işareti aynen C# ta olduğu gibi blok başı işaretidir. 2 numaralı satırdaki { sınıf için tanımlanan bloğun başlangıcıyken 4 numaralı satırdaki { işareti de main metodunun başlangıcıdır. 6 numaralı ve 7 numaralı satırlardaki } işareti blok sonu işaretidir. 6 numaralı satırdaki } işareti main bloğunun sonuyken, 7 numaralı satırdaki } işareti sınıf için açılan bloğun sonudur. Blok başı ve blok sonu ifadelerinde dikkat etmeniz gereken en önemli nokta son açılan blok her zaman ilk kapatılan bloktur ve her açılan blok mutlaka kapatılmalıdır. 3 numaralı satırda aynen C# ta olduğu gibi main metodunun tanımını görebilirsiniz. public static void ifadelerinin anlamları C# ile aynı olmakla birlikte daha sonra detaylı olarak incelenecektir. Main metodunun parametresi olan String[] args de metodun parametre olarak bir String dizisi aldığını belirtir. Main metodu, Java da da konsol uygulamalarının otomatik olarak çalışan ilk metodudur. 5 numaralı satırda main metodu çalıştığında ne yapacağını gösterir. System.out.println(); ifadesi C# taki Console.WriteLine() ifadesine karşılık gelir. Burada System.out standart çıktı birimini temsil eder. Varsayılan olarak kullandığınız ekrandır. println() metodu, kendisine parametre olarak verilen ifadeye yazar ve sonundaki ln (line) kısmından dolayı bir satır aşağıya geçer. İfadenin sonundaki ; işareti Java da da C# taki her ifadenin sonunda mutlaka bulunması gereken satır sonlandırıcısıdır. Bu basit uygulamaya bakarak C# dili ile Java dilinin birbirine pek çok noktada benzediğini görebilirsiniz. Bundan sonraki pek çok aşamada C# dili ile Java dili arasındaki benzerliklere tanık olacaksınız. İlk uygulamada konsola System.out.println() yazdırdığımız ifadeyi bir mesaj kutusunda yazdırmak istersek bir miktar değişiklik yapmamız gerekecektir. Örnek Uygulama 1.2a: 1 public class MesajKutusu 2 { 3 public static void main( String[] args) 4 { 5 javax.swing.joptionpane.showmessagedialog(null, Ilk Java Uygulamasi ); 6 } 7 }

15 Java ya Giriş Uygulamanın açıklaması: Bu uygulamanın 5 numaralı satırı dışındakiler önceki uygulamadan farklı değildir. 5 numaralı satırda da C# taki MessageBox.Show() metodunun Java daki benzeri olan JoptionPane.showMessageDialog() metodu kullanılmıştır. Bu kodun başındaki javax.swing de JOptionPane sınıfının içinde bulunduğu pakettir. Java daki paketleri.net teki assembly ler gibi düşünebilirsiniz. Dolayısıyla C# taki using ifadesinin karşılığı olarak import ifadesini kullanarak kodumuzu aşağıdaki şekilde güncelleyebiliriz. Örnek Uygulama 1.2b: 1 import javax.swing.joptionpane; 2 public class MesajKutusu 3 { 4 public static void main( String[] args) 5 { 6 JOptionPane.showMessageDialog(null, Ilk Java Uygulamasi ); 7 } 8 } Bu örnekte 1 numaralı satırdaki import ifadesi javax.swing paketindeki JOptionPane sınıfının yüklenmesini sağlar. Bir kere yüklendikten sonra tekrar paket adının kod içinde kullanmamıza gerek kalmaz. Burada yapılan yükleme işlemi,.net teki gibi, yüklenen paketin içerdiği kodu, oluşturulan.class dosyasının içine eklemez, sadece o pakete erişimi sağlayacak kodu oluşturur. Uygulama 1.2b deki 6 numaralı satırda JOptionPane sınıfının showmessagedialog metodunun ilk parametresi swing paketinin detaylarına gelene kadar sürekli null olarak kullanılacaktır. 2. parametre de tahmin edebileceğiniz gibi mesaj kutusunda yazdırılacak ifadedir. Java da comment lerin kullanımı C# ile aynıdır. // Satır comment. /* */ Blok comment. Basit Veri Tipleri Java daki basit (primitive) veri tipleri.net teki basit veri tipleriyle çok benzerdir. Herhangi bir veri tipinin tanımlanması C# takinden farklı değildir. Bununla birlikte Java daki sayısal tiplerin hepsi işaretlidir (signed hem negatif hem de pozitif sayıları tutar), işaretsiz veri tipi yoktur. Öncelikle tam sayısal veri tiplerinden başlayalım: byte: Adından da anlaşılabileceği gibi 1 byte lık, tam sayı tutan veri tipidir. C# ta sbyte a,.net CTS te System.SByte a karşılık gelir. Herhangi bir byte değişken tanımlaması aşağıdaki şekillerde yapılabilir: byte yas; //ilk değer verilmeden. byte yas = 67; //ilk değer verilerek. short: 2 byte lık, tam sayı tutan veri tipidir. C# ta short a,.net CTS te System.Int16 ya karşılık gelir. Herhangi bir short değişken tanımlaması aşağıdaki şekillerde yapılabilir: short derinlik; //ilk değer verilmeden. short derinlik = 23245; //ilk değer verilerek. int: 4 byte lık, tam sayı tutan veri tipidir. C# ta int e,.net CTS te System.Int32 ye karşılık gelir. Herhangi bir int değişken tanımlaması aşağıdaki şekillerde yapılabilir:

16 10 Bölüm 1 int sayi; //ilk değer verilmeden. int sayi = 12; //ilk değer verilerek. long: 8 byte lık, tam sayı tutan veri tipidir. C# ta long a,.net CTS te System.Int64 e karşılık gelir. Herhangi bir long değişken tanımlaması aşağıdaki şekillerde yapılabilir: long GNP; //ilk değer verilmeden long GNP = ; //ilk değer verilerek Bunların dışında basit veri tipi olmamakla birlikte şu aşamada bilmeniz gereken bir veri tipi daha var: String. String tipi referans üzerinden çalışan bir veri tipidir. Yani, aslında basit veri tiplerinden farklı olarak bir nesne üzerinden çalışırlar; fakat tanımlaması şu ana kadar bahsedilen veri tiplerinden farklı değildir. String in detaylarına ilerleyen bölümlerde değineceğiz. Burada dikkat etmemiz gereken nokta Java da küçük harf s ile başlayan string tanımının olmamasıdır. Herhangi bir String veri tanımlaması aşağıdaki şekillerde yapılabilir: String Ad; //ilk değer verilmeden String Ad = Yalcin ; //ilk değer verilerek Artık kullanıcıdan 2 sayı alıp bunları matematiksel herhangi bir işlem içinde kullanabilecek hemen her şeye sahibiz. Tek eksiğimiz bu sayıları kullanıcıdan nasıl alacağımız. Matematiksel işlemlerin nasıl yapıldığına gelirsek, ileride farklılıklarına değineceğemizi belirterek C# taki yazılışlarından şu an için hiçbir farkı yoktur diyebiliriz. Şimdi bunu örnekleyelim: Örnek Uygulama 1.3: 1 import javax.swing.joptionpane; 2 public class MesajKutusu 3 { 4 public static void main( String[] args) 5 { 6 String birincisayi, ikincisayi; 7 int toplam, sayi1, sayi2; 8 birincisayi = JOptionPane.showInputDialog( Birinci sayiyi giriniz: ); 9 ikincisayi = JOptionPane.showInputDialog( Ikinci sayiyi giriniz: ); 10 sayi1 = Integer.parseInt(birinciSayi); 11 sayi2 = Integer.parseInt(ikinciSayi); 12 toplam = sayi1 + sayi2; 13 JOptionPane.showMessageDialog(null, toplam); 14 } 15} Kod Açıklaması: 6 numaralı satırda String tipinde 2 değişken tanımlanmıştır. Unutmayın ki bu 2 değişken de basit veri tipi değil referans tipli değişkenlerdir. Bu değişkenler JOptionPane sınıfının showinputdialog metodunun döndürdüğü değerleri tutmak için kullanılmıştır. 7 numaralı satırda 3 tane tam sayı tanımlanmıştır. toplam adlı değişken JOptionPane.showInputDialog() metoduyla aldığımız değerlerin sayıya dönüştürülmüş hallerini toplamak için kullanılmıştır. sayi1 ve sayi2 değişkenleri de JOptionPane.showInputDialog() metoduyla aldığımız

17 Java ya Giriş 11 değerlerin sayıya dönüştürülmüş hallerini tutacaktır. 8 ve 9 numaralı satırlarda JOptionPane. showinputdialog() metodlarıyla, yukarıda tanımladığımız String lerin içine, kullanıcının gireceği değerler alınmaktadır. Burada dikkat etmemiz gereken nokta, rakamlar dışında değerler girdiğimizde 10 ve 11 numaralı satırlarda dönüştürme hatasıyla karşılaşma durumumuzdur. Bu satırlarda kullanıcı tarafından girilmiş olan String ler Integer sınıfının parseint() aracılığıyla int e çevrilmeye çalışılır. Integer sınıfı.net teli System.Int32 sınıfına karşılık gelen sınıftır ve terimsel olarak wrapper class olarak geçer. parseint() metodu da Int32 sınıfının Parse() metoduyla aynı şekilde çalışır. Eğer kendisine gönderilen parametre int e çevrilemiyorsa NumberFormatException oluşturur. Bunun için de C# taki gibi istisna yönetimi (exception handling), yani try-catch-finally bloklarını kullanabiliriz. 10 ve 11 numaralı satırlarda eğer herhangi bir exception oluşmazsa, yani bir int in alabileceği değer aşılmazsa 12 numaralı satır çalışır. Eğer 2 değerin toplamı bir int in alabileceği en büyük değeri aşıyorsa toplam değişkeninin alacağı değer negatif bir sayıya dönecektir. Çünkü Java, C geleneğinden dolayı sayıları kontrol etmez. Bu durumu daha küçük bir tam sayı tipi olan byte üzerinden Uygulama 1.4 te açıklayacağım. 13 numaralı satırda bir önceki örnekte kullandığımız JOptionPane.showMessageDialog() metoduyla toplam değişkeninin değerini yazdırıyoruz. Sınıf adıyla kullanılması sebebiyle show- MessageDialog() metodunun JOptionPane sınıfının static bir metodu olduğunu anlayabilirsiniz. Ondalıklı Tipler double: 8 byte lık ondalıklı veri tipidir. Tanımlandığı standart (IEEE 754) çerçevesinde yüksek doğruluk isteyen işlemlerde kullanılmamalıdır; ancak ondalıklı kısımda yüksek yoğunluk çok önemli değilse kullanılabilir. C# ta float a,.net CTS te System.Single a karşılık gelir. float: 4 byte lık ondalıklı veri tipidir. Hem tanımlandığı standart çerçevesinde hem de double veri tipine göre daha küçük bir veri tipi olması sebebiyle yüksek doğruluk isteyen işlemlerde kullanılmamalıdır; ancak ondalıklı kısımda yüksek yoğunluk çok önemli değilse kullanılabilir. Eğer bellek yetersizliği ile ilgili bir problem yoksa float yerine double tercih edilmelidir. C# ta double a,.net CTS te System.Double a karşılık gelir. Her 2 ondalıklı veri tipinin yerine java.math paketinde bulunan BigDecimal sınıfı kullanılabilir. Mantıksal Tip boolean: true ya da false değerlerinde birini taşıyabilen basit veri tipidir. Taşıdığı veri sadece 1 bit ile gösterilebiliyor olsa da kapladığı alan 1 bit değildir. C# ta bool a,.net CTS te System.Boolean a karşılık gelir. Karakter Tipi char: 2 byte lık Unicode karakter olarak herhangi bir karakter bilgisini tutmak için kullanılır. C ailesi geleneğinden dolayı işaretsiz tam sayısal veri tipi olarak değerlendirilebilir. C# ta char a,.net CTS te System.Char a karşılık gelir. Aritmetik İşlemler ve Taşma Java da tam sayısal aritmetik işlemler, işleme giren değerlerin tipleri eğer birer int değilse int e dönüştürülerek yapılır. Eğer işleme giren tiplerden en az biri long ise long a dönüştürülerek yapılır. Eğer tipler ondalıklı ise işlemler, işleme giren tipler double a dönüştürülerek yapılır. Dolayısıyla aşağıdaki örnekleri dikkatle incelemek gereklidir:

18 12 Bölüm 1 Örnek Uygulama 1.4a: 1 public class TipDonusumleri1 2 { 3 public static void main( String[] args) 4 { 5 byte sayi1 = 120; 6 byte sayi2 = 110; 7 byte toplam = sayi1 + sayi2; 8 } 9 } Bu örnekte 7 numaralı satırda sayi1 + sayi2 ifadesi, işlem int üzerinden yapıldığından çalışacaktır; ancak toplam değişkeninin tipi byte olduğu için derlenemeyecektir ve possible loss of precision (değer kaybı ihtimali) hatası verecektir. Bunun sebebi toplanan byte tipindeki değişkenlerin değerlerinin toplamının, byte tipindeki bir alana sığmaması değildir. ( = 230, byte tipinin alabileceği en büyük değer ise 127 dir). Bunu sayi1 in değerini 12, sayi2 nin değerini 11 yaparak görebilirsiniz. Possible loss of precision hatasını bu durumda da alacaksınız. ( = 23, byte tipinin içine sığar). Dolayısıyla bu hatanın sebebi, sayi1 + sayi2 işleminin int üzerinden yapılmasıdır. Bunu anlamak için 7 numaralı satırda tanımlanan toplam değişkeninin tipini byte tan short a çevirip tekrar derleyerek de görebilirsiniz. Bu durumda 120 ile 110 un toplamı olan 230 değeri short tipine sığacak bir değer olmasına rağmen possible loss of precision hatasını yine alırsınız; ancak toplam değişkeninin değerini int ya da long yaparak bu hatadan kurtulabilirsiniz. Uygulama 1.4a örneği üzerinde düşündüğümüzde yapılan işlem anormal gelmemelidir. Çünkü burada 2 tane byte tipli değişkenin toplamının değerinin byte tipine sığmaması ihtimali yüksektir. Bu durumda, eğer bu işlemi byte tipi üzerinden gerçekleştirmek istersek ne yapmalıyız? Bunun cevabını da Uygulama 1.4b de görebilirsiniz. Örnek Uygulama 1.4b: 1 public class TipDonusumleri2 2 { 3 public static void main( String[] args) 4 { 5 byte sayi1 = 12; 6 byte sayi2 = 11; 7 byte toplam = (byte)(sayi1 + sayi2); 8 System.out.println(toplam); 9 } 10} Örnek Uygulama 1.4b de 7 numaralı satırda yaptığımız işlem bir explicit cast (göstererek dönüştürme) işlemidir. Uygulama 1.4a da int e dönüştürme ise implicit cast (gizli dönüştürme) işlemi olarak adlandırılır. Daha sonra bu işlemleri farklı isimlerle tekrar değerlendireceğiz. Burada sayi1 + sayi2 işlemi önce yine int üzerinden yapılır ve sonra byte a dönüştürme yapılır. Bu şekilde 12 ile 11 in toplamı olan 23 değerini byte olarak elde edebilirsiniz. Buraya kadar herşey güzel; ancak bu noktada Uygulama 1.3 deki taşma problemimize geri dönelim ve 5 ve 6 numaralı satırlarda tanımladığımız byte tipli değişkenlerimizin değerlerini sırasıyla 120 ve 110 yapalım. Yeni değerlerin her ikisi de byte tipine sığabilirler; fakat toplamları olan 230 değeri byte tipine

19 Java ya Giriş 13 sığmaz. Java uygulaması bu durumda hata vermeyecektir ve 8 numaralı satırdaki System.out. println() den dolayı konsola -26 yazacaktır. Bunu detayıyla şu şekilde açıklayabiliriz: Bildiğiniz gibi güncel bilgisayar sistemleri 2 lik (binary) sistemle çalışırlar, yani herşey 1 ve 0 ile ifade edilir. Dolayısıyla sayi1 ve sayi2 değişkenlerimizin 2 lik sistemdeki karşılıkları şu şekildedir: sayi1 = 120 = ( ) 2 sayi2 = 110 = ( ) 2 Sayıların 2 lik sistemdeki karşılıklarının başındaki 0, byte tipinin 1 byte lık yani 8 bitlik olmasından dolayı sayıyı 8 bite tamamlamak içindir; ancak en başa eklediğimiz bu 0 ın taşıdığı çok daha farklı bir anlam vardır, Bu ilk değer sayının pozitif ya da negatif olmasını belirler. Eğer 0 ise arkasından gelen tüm bitler pozitif sayıya göre yorumlanacaktır, eğer 1 ise negatif sayıya göre yorumlanacaktır. Şimdi de sayıları toplayalım: sayi1 + sayi2 = = 230 sayi1 + sayi2 = ( ) 2 + ( ) 2 = ( ) 2 toplam = ( ) 2 Az önce bahsettiğimiz işaret biti durumundan dolayı 2 lik sayının en başındaki değer olan 1, gerisindeki 7 bitin negatif sayıya göre yorumlanacağını gösterir. Dolayısıyla Java da tamsayıların tümünde sayı değeri en soldaki bitin pozitif ya da negatif olması durumu netleştikten sonra ortaya çıkar. Örnek olarak şu sayıları ele alalım: 5 = ( ) 2 En baştaki 0 sayının pozitif olduğu anlamına gelir. Devamındaki de de ilk 1 e kadar olan 0 ların bir anlamı yoktur. Böylece elimizde (101) 2 kalır. Bunun da karşılığı 10 luk sistemde 5 tir. Açılımı ise şu şekildedir. 1 x 2 0 = 1 0 x 2 1 = 0 1 x 2 2 = = 5 Bu noktadan sonra eğer sayımız negatif ise durumun değiştiğini göreceğiz. Örnek olarak -1 i ele alacağız. Eğer 1 = ( ) 2 ise; -1 = ( ) 2 + ( ) 2 dir. Yani ( ) 2 dir. Bu yönteme 2 nin tamlayanı yöntemi denir. ( ) 2 de ( ) 2 nin bire tamlayanıdır. Burada niçin bu kadar dolandırılmış diye düşünebilirsiniz; ancak unutmayın ki gündelik hayatta kullandığımız gibi bir - işaretine sahip değiliz. Bu durumu -1 ile 1 i toplayarak deneyelim: ( ) 2 + ( ) 2 = ( ) 2 Elimizde 9 bitlik bir veri oluştu; ancak byte veri tipi 8 bitlik bir veri tipiydi. Bu durumda en baştaki 1 değeri hiçbir değerlendirmeye katılmadan son 8 bit değerlendirilir; yani ( ) 2 değeri kullanılır. Burada ilk bit 0 olduğu için sayı pozitiftir diyebiliriz. Geri kalan 7 bit de 0 olduğu için sayı 10 luk sistemdeki 0 a karşılık gelir. Bu durumda aklınıza takılabilecek olan soru 0 ın pozitifliği ya da negatifliği olabilir. 0 sayısı matematikte ne pozitif tam sayılar kümesinin ne de negatif tamsayılar kümesinin bir üyesidir; ancak programlama dillerinde 0 değeri pozitiftir.

20 14 Bölüm 1 Sonuç olarak bilgisayar için negatif bir sayının 2 lik sistemde nasıl yazıldığını bulmak istiyorsak şu şekilde bir işlem gerçekleştirmeliyiz: Sayıyı 2 lik sistemde pozitif olarak yazın. Oluşan sayıdaki 0 ları 1, 1 leri 0 yapın. Sayıya 2 lik sistemde 1 ekleyin. Örnek olarak -5 e ulaşmaya çalışalım: 5 = ( ) 2 1 e tamlayan = ( ) 2 2 ye tamlayan = ( ) 2 Böylece Uygulama 1.4b nin açıklamasında elde ettiğimiz ( ) 2 değerini irdeleyebilir duruma geldik. Yukarıdaki işlemi tersten yaptığınızda da sayıya ulaşabilirsiniz. ( ) 2 ( ) 2 = ( )2 1 e tamlayan = ( ) 2 ( ) 2 = 26 Dolayısıyla elimizdeki sayı 10 luk sistemdeki -26 ya karşılık gelir. Bu detayları bilmemeniz halinde basit bir sayısal problem üzerinde çok zaman harcayabilirsiniz. Çünkü gördüğünüz şekilde Java aritmetik işlemlerde taşan sayılar için hata vermez. Java da Operatörler Java da tipler üzerinde işlem yapmak için pek çok operatör bulunur. Bu operatörlerin çoğu C# ta da aynı şekilde mevcuttur. Öncelik Sırası Öne gelen (prefix) Sona gelen (postfix) ++ifade, --ifade ifade++, ifade-- Tek ifade alan +ifade, -ifade, ~,! Çarpımsal *, /, % Toplamsal +, - Kaydırma <<, >>, >>> İlişkisel Eşitlik ==,!= Bit üzerinde (bitwise) VE (AND) Bit üzerinde özel VEYA (EX-OR) Bit üzerinde VEYA (OR) Mantıksal VE (AND) Mantıksal VEYA (OR) <, >, <=, >=, instanceof & ^ && Üçlü ifade alan (ternary) operatör? : Atama =, +=, -=, *=, /=, %=, &=, ^=, =, <<=, >>=, >>>=

21 Java ya Giriş 15 Gördüğünüz gibi Java daki birkaç operatör dışında hemen hemen tüm operatörler C# ile aynıdır. Bit üzerinde işlem yapan operatörler kestirmeli (shortcut) operatörlerdir. Yani operandlarından (işleme giren değerlerinden) biri işlemin sonucunu kesin olarak ortaya koyuyorsa işlemin devamındaki operand değerlendirilmez. Örnek Uygulama 1.5a: 1 public class Operatorler1 2 { 3 public static void main( String[] args) 4 { 5 int sayi, sonuc; 6 sayi = 5; 7 sonuc = sayi sayi; 8 System.out.println(sonuc); 9 System.out.println(sayi); 10 } 11} Bu uygulamada 8 ve 9 numaralı satırlar işlendiğinde ekranda yazacak değerlerin ne olduğunu ve 7 numaralı satırın nasıl işlediğine bakalım. 6 numaralı satırda sayi değişkeninin değeri 5 yapıldıktan sonra 7 numaralı satırda sonuc = sayi sayi; ifadesi işletilmektedir. Bu satırı daha detaylı inceleyelim: sonuc = sayi sayi; ifadesinde önce ++sayi ifadesi çalışacaktır ve sayi değişkenine 1 ekleyerek değerini 6 yapacaktır. Daha sonra sayi++ işlemeden sayi değeri ile artırılmış sayi değerleri toplanarak sonuc değişkenine atama yapılacaktır. Böylece = 12 değeri sonuc değişkeninin değeri olur. Bu atama yapıldıktan sonra sayi değişkenine sayi++ dan dolayı tekrar 1 eklenecektir ve sayi değişkeninin değeri 7 olacaktır. Kaydırma (Shift) İşlemleri Kaydırma işlemleri genellikle sistem programlama, oyun programlama gibi uzmanlık gerektiren alanlarda kullanılır. Değerimizi temsil eden 2 lik sayı sistemindeki değeri sağa ya da sola belirtilen bit sayısı kadar kaydırır ve kaydırılan alanlara 0 değerini koyar. İşaret bitiyle ilgili detayları da vardır. Bu sebeple bir örnekle gösterip detaylı olarak anlatmayacağım. Örnek Uygulama 1.5b: 1 public class Operatorler2 2 { 3 public static void main( String[] args) 4 { 5 int sayi; 6 sayi = 5; 7 sayi <<= 2; 8 System.out.println(sayi); 9 } 10} Bu örnekte 7 numaralı satırda sayi değişkeninin bitleri 2 kademe sola kaydırılmaktadır. Bu işlem nasıl yapılıyor inceleyelim:

22 16 Bölüm 1 int 32 bit (4 byte) olduğu için 2 lik sayı sisteminde aşağıdaki gibi gösterilir. sayi = 5 = Bu değer sola 1 bir kaydırıldığında; sayi = = 10 değeri elde edilir. En baştaki 0 düşen bittir, ve en sondaki 101 değerleri sola kaydırılarak en sona da 1 tane 0 eklenmiştir. sayi <<= 2 ifadesi sola doğru 2 bitlik kaydırma işlemi olduğu için sayi 1 bit daha sola kaydırılmalıdır. sayi = = 20 Böylece sayi değişkeninin değeri 20 olur. Dikkat ederseniz sola kaydırma 2 ile çarpma gibidir. İşlemlerde Parantez Kullanımı Matematiksel ya da mantıksal işlemlerde parantezlerin içine alınan ifadelerin önceliği ilk sıraya çıkar. Matematik bilgimizden tek farkı kullandığımız tek işaretin sadece normal parantez olmasıdır, köşeli parantez ya da küme parantezi kullanılmaz. Örnek: Bu ifadeyi matematiksel olarak yazmak istediğimizde eğer; d = m * P / n * r * T; şeklinde yazarsak çarpma ve bölmenin önceliklerinin aynı olması sebebiyle işlem soldan sağa sırayla gerçekleşecektir. Böyle olunca m ile P çarpıldıktan sonra n ile bölünecek, bunun sonucu da r ile T nin çarpımıyla çarpılacaktır. Oysa ifadenin gösterdiği m ile P nin çarpımının n, r ve T nin çarpımına bölünmesi şeklindedir. Bu sebeple bu matematiksel ifadeyi; d = m * P / (n * r * T); şeklinde yazmalıyız. Karar Vermek ve Koşullu İfadeler Java da da C# taki gibi karar verme ve koşullu ifade yazmak için 2 ifade ve 1 operatör söz konusudur. Bunlar: 1 2. if...else Üçlü ifade alan operatör (? :) 3 switch...case if...else Yapısı if... else yapısı Java da da aynen C# taki gibi kullanılır. En basit yapısı sadece if in kullanıldığı şeklidir. Koşullu ifadelerde dikkat edilmesi gereken nokta koşulun sonucunun true ya da false, yani boolean bir ifade üretmesi gerekliliğidir. Bu yönüyle C geleneğiyle farklılaşır.

23 Java ya Giriş 17 Örnek Uygulama 1.6a: 1 import javax.swing.joptionpane; 2 public class Kosul1 3 { 4 public static void main( String[] args) 5 { 6 int sayi1 = Integer.parseInt(JOptionPane. showinputdialog( Birinci sayıyı giriniz )); 7 int sayi2 = Integer.parseInt(JOptionPane. showinputdialog( Ikinci sayıyı giriniz )); 8 if( sayi1 < sayi2) 9 { 10 JOptionPane.showMessageDialog(null, sayi1 + kucuktur + sayi2); 11 } 12 } 13} 8 numaralı satırda yapılan karşılaştırmanın sonucu, yani sayi1 değişkeninin değerinin sayi2 değişkeninin değerinden küçük olma durumu true ya da false, daha genel bir ifadeyle boolean bir sonuç üretir. Eğer karşılaştırmanın sonucu true ise if bloğunun içi çalıştırılır, if bloğu sonlandığında da akış kaldığı yerden devam eder; aksi takdirde if bloğunun içi çalıştırılmadan programın akışı if bloğu yokmuş gibi çalışmaya devam eder. Koşullar gibi bir sonraki bölümde inceleyeceğimiz döngü ve tekrarlı yapılarda da kodun okunurluğunu artırmak için if bloğunun içi tek ifadeden oluşsa bile blok parantezlerini, tek ifade için şart olmamasına rağmen kullanmayı alışkanlık haline getirin. Örnek Uygulama 1.6b: 1 import javax.swing.joptionpane; 2 public class Kosul2 3 { 4 public static void main( String[] args) 5 { 6 int sayi1 = Integer.parseInt(JOptionPane. showinputdialog( Birinci sayıyı giriniz )); 7 int sayi2 = Integer.parseInt(JOptionPane. showinputdialog( Ikinci sayıyı giriniz )); 8 if( sayi1 < sayi2) 9 { 10 JOptionPane.showMessageDialog(null, sayi1 + kucuktur + sayi2); 11 } 12 else if( sayi1 > sayi2) 13 { 14 JOptionPane.showMessageDialog(null, sayi1 + buyuktur + sayi2); 15 } 16 } 17}

24 18 Bölüm 1 Bu örnekteki çalışma şekli Uygulama 1.6a dakiyle aslında aynı şekildedir. Eğer 8 numaralı satırdaki karşılaştırma true sonuç vermezse akış 12 numaralı satırdan devam edecektir. Bu blok da else bloğudur. else bloğu aslında if bloğundan sonraki akışın ilk parçasıdır. else bloğunda bir karşılaştırma daha yapılmaktadır. Bu karşılaştırmada da aynen 8 numaralı satırdaki if bloğu gibi bir çalışma mekanizması söz konusudur. Eğer karşılaştırma sonucu true ise else bloğu çalışır; aksi takdirde else bloğundan sonraki noktadan; yani 16 numaralı satırdan itibaren çalışma devam eder. Bu uygulamada, Örnek Uygulama1.6a ya göre farklılaşan tek nokta eğer 8 numaralı satırdaki karşılaştırma true sonuç üretirse 12 numaralı satırdaki else bloğu, her ne kadar kendinden sonra gelen ilk ifade olsa da çalışmaz. Örnek Uygulama 1.6c: 1 import javax.swing.joptionpane; 2 public class Kosul3 3 { 4 public static void main( String[] args) 5 { 6 int sayi1 = Integer.parseInt(JOptionPane. showinputdialog( Birinci sayıyı giriniz )); 7 int sayi2 = Integer.parseInt(JOptionPane. showinputdialog( Ikinci sayıyı giriniz )); 8 if( sayi1 < sayi2) 9 { 10 JOptionPane.showMessageDialog(null, sayi1 + kucuktur + sayi2); 11 } 12 else if( sayi1 > sayi2) 13 { 14 JOptionPane.showMessageDialog(null, sayi1 + buyuktur + sayi2); 15 } 16 else 17 { 18 JOptionPane.showMessageDialog(null, sayi1 + esittir + sayi2); 19 } 20 } 21} Bu uygulamada değişen tek nokta 16 numaralı satırdaki koşulu olmayan else bloğudur. Böylece sayi1 değişkenin değeri ile sayi2 değişkeninin değeri arasında yapılan karşılaştırmada durum ne olursa olsun, bir exception üretilmediği sürece, bu 3 bloktan birinin çalışması kesindir. 16 numaralı satırdaki else bloğunun çalışması için 8 ve 12 numaralı satırlardaki karşılaştırmalardan false üretilmesi gerekir. Bu örnekte bu durum 2 sayıyı karşılaştırırken, iki sayının birbirine eşit olması durumudur. Bu bloklardan hangisi çalışırsa çalışsın, akış 20 numaralı satırdan devam edecektir.

25 Java ya Giriş 19 Örnek Uygulama 1.6d: 1 import javax.swing.joptionpane; 2 public class Kosul4 3 { 4 public static void main( String[] args) 5 { 6 int sayi1 = Integer.parseInt(JOptionPane. showinputdialog( Birinci sayıyı giriniz )); 7 int sayi2 = Integer.parseInt(JOptionPane. showinputdialog( Ikinci sayıyı giriniz )); 8 if( sayi1 < sayi2) 9 { 10 JOptionPane.showMessageDialog(null, sayi1 + kucuktur + sayi2); 11 } 12 else if( sayi1 < sayi2) 13 { 14 JOptionPane.showMessageDialog(null, sayi1 + buyuktur + sayi2); 15 } 16 } 17} Bu uygulamalarda göstermek istediğim durum 8 ve 12 numaralı satırlardaki karşılaştırmaların aynı olmasıdır. Bu durumda eğer 8 numaralı satırdaki karşılaştırma true üretirse 12 numaralı satır, aynı karşılaştırmayı yapmasına rağmen çalışmayacaktır. Eğer 8 numaralı satırdaki karşılaştırma false üretirse 12 numaralı satırdaki aynı karşılaştırma tekrar yapılacaktır ve doğal olarak o da false üreteceğinden else bloğu da çalışmayacaktır. Bunun da anlamı uygulamada durum ne olursa olsun hiçbir zaman else bloğunun çalışmayacağıdır. Sayısal karşılaştırmalardan sonra şimdi mantıksal işlemlere bakalım. Mantıksal işlemler sayısal ifadelerden farklı olarak zaten boolean sonuç üretir. Mantıksal işlemler AND (VE), OR (VEYA), EX-OR (ÖZEL VEYA), NOT (DEĞİL) işlemleridir. Mantıksal işlemlerin kestirmeli ve kestirmesiz olmak üzere 2 şekli vardır. Kestirmeli (short-circuited) işlemler doğruluğu kontrol edilecek ifadenin içinde bulunan ifadelerden herhangi biri bütün ifadenin sonucunu belirlediği anda diğer ifadeler kontrol edilmez. Kestirmeli (short-circuited) işlemlerde, bir ifadenin içinde bulunan bütün ifadelerin doğruluğu kontrol edilir, sonuç belirlense bile işlem sona ermez.

26

27 2Döngüler

28 2 Döngüler While Döngüsü do Döngüsü for Döngüsü break ve continue Deyimleri

29 Döngüler Birçok programlama dilinde olduğu gibi, Java dilinde de döngüler önemli bir yere sahiptir. Döngüler, yinelenen işlemler için oluşturulan kod bloğunun, belirli bir koşula bağlı olarak tekrarlanmasını sağlayan yapılardır. Java dilinde 3 tip döngü mevcuttur. Bunlar; while do for döngüleridir. Oluşturulan döngü yapıları birkaç farklılık dışında, içinde bulunan kod parçacığını baştan belirlenen ya da program akışı içerisinde belirlenen sayıda tekrarlanmasını sağlar. Döngüler belirli sayıda işlenmek üzere kurulabileceği gibi kod bloğu içerisinde gerçekleştirilecek bir koşul sağlanana kadar tekrarlanmak üzere de gerçekleştirilebilir. Döngülerin oluşturulması sırasında dikkat edilmesi gereken en önemli noktalardan biri, döngü içerisinde işlenecek kod parçacığının işlem sayısıdır. Belirli bir sayı ya da bir kontrol koşulu ile kurulmayan döngüler, program akışının sürekliliğini bozarak çalışan kodu sonsuz döngüye sokabilir. Bir döngünün işlenmesi sırasında ya da sonsuz döngü durumunda, kod bloğunun içerisinde müdahaleler gerekli olabilir. Bu müdahaler de break ve continue yapıları ile sağlanmaktadır. While Döngüsü while döngüsünün genel yapısı aşağıdaki gibidir. while( boolean_kontol_ifadesi) { Tekrarlanan_Ifade(ler) ; } Bu ifadede yer alan boolean_kontol_ifadesi kontrolu sonrasında boolean bir sonuç veren herhangi bir ifade olabilir. Tekrarlanan_Ifade(ler) ise yinelenmesi istenen kod bloğudur. C ve C++ dillerinde farklı veri tipleri ile kontrol yapılabilirken, Java da farklı olarak buradaki kontrol boolean bir ifade ile yapılabilir. While döngüsünde yineleme, belirlenen koşulun sağlanmasına kadar devam edecektir. Yineleme kontrolu çevrimin başında yapılır. Kontol ifadesinin sağlanmaması halinde, döngü içerisinde tekrarlanması istenen kod parçacığı hiç çalışmayabilir. Örnek uygulama 2.1: 1 int sayac=0; 2 while (sayac++ < 5) { 3 system.out.println( Merhaba Dünya ) 4 } Uygulama 2.1 i incelediğimizde, ilk satırda, sayac adlı bir değişken tanımlanarak 0 değeri atanmıştır. Kontrol ifadesi, sayac++ ifadesiyle artırılan sayac değeri 5 ten küçük olduğu sürece Merhaba Dünya ifadesi yazdırılacaktır. Bu örnekte Merhaba Dünya ifadesi 5 kez yazılacaktır.

30 24 Bölüm 2 do Döngüsü Genel yapısı, şeklindedir. do { Tekrarlanan_Ifade (ler) ; } while (boolean_kontol_ifadesi) do döngüsü işleyiş biçimi olarak while döngüsüne benzer. Benzer şekilde bu yapıda da boolean bir koşul ile döngünün yinelenmesi kontrol edilmektedir. do döngüsünün en önemli farkı, kontol ifadesi başta değil sonda yapıldığından tekrarlanan ifade(ler) en azından bir kere işlenecektir. for Döngüsü Birçok programlama dilindeki temel gereksinimlerden biri olan, bir değişkenin belirli bir aralıkta artırılması ile kurulan döngü yapılarının en çok kullanılanı for döngüsüdür. Genel yapısı; for(ifade; booelan_kontrol_ifadesi ; deyim) { tekrarlanan_ifade(ler) } şeklindedir. ifade olarak adlandırılan kod, sıra döngünün işlenmesine geldiğinde ilk olarak çalışan ifadedir. Henüz döngü içerisindeki kod parçacığı çalışmaya başlamadan bir defaya mahsus olarak çalışacak, sonraki iterasyonlarda bu ifade çalışmayacaktır. Çoğunlukla döngüde kullanılacak değişkenin başlangıç değer atamasında kullanılır. boolean_kontrol_ifadesi doğru değerini verdiği sürece döngünün yinelenmesini sağlayan kontrol ifadesidir. while döngüsünde olduğu gibi koşulun sağlanmaması durumunda for döngüsü de hiç çalışmayabilir. deyim ise döngü bloğunun sonunda çalışır. Çoğunlukla kullanılan değişkenin arttırımı bu bölümde yazılan kod ile sağlanır. Örnek Uygulama 2.2: 1 For(int x=0; x < 10; x++) { 2 System.out.println( Değer= + x ); 3 } Uygulama 2.2 de, döngüde kullanılan sayısal bir x değişkeni ilk ifadede tanımlanmış ve 0 değer ataması yapılmış, deyim bölümünde ise arttırımı gerçekleşmiştir. Kontrol ifadesi x değişkeninin 10 dan küçük olduğu tüm değerler için doğrulanacak ve döngü aşağıdaki sonucu üretecektir: Değer=0 Değer=1... Değer=8 Değer=9

31 Döngüler 25 for döngülerinde genellikle döngünün sayılması için kullanılan bir değişken ihtiyacı oldduğundan, ifade bölümünde değişken tanımlamasına ve değer atamasına izin verilmektedir. Burada tanımlanan değişken, sadece for döngüsü içinde geçerlidir. Böylece diğer kısımlarda tanımlanan değişkenler ile çakışma ihtimali engellenmektedir. Döngü bloğu (scope) içerisinde kullanılacak başka değişkenler de yine ifade olarak adlandırılan bölümde tanımlanabilir. Bu işlem Örnek Uygulama 2.3 de belirtildiği gibi, tanımlanacak değişkenler arasına virgül konularak yapılır. Örnek Uygulama 2.3: 1 int j,k; 2 For(j = 3, k = 6; j + k < 20 ; j++, k +=2 ) { 3 System.out.println( j değeri= + j + k değeri= + k); 4 } break ve continue Deyimleri break ve continue deyimleri Java da da C# ta olduğu gibi kullanılır. Döngü yapıları içerisinde zaman zaman kod bloğunun işlenmesi ile ilgili müdahale ihtiyaçları ortaya çıkabilir. Belirli bir noktada döngüden çıkmak ya da o anda işlenen çevrimin sonlandırılması istenebilir. Bu ihtiyaçlar break ve continue deyimleri ile sağlanır. break deyimi, kod bloğunda kullanıldığı yerde döngünün tamamen sonlandırılmasını sağlar. Ancak dikkat edilmesi gereken en önemli nokta, içiçe (nested) yapılar kullanıldığında break sadece bulunduğu döngü bloğunun sonlandırılmasını sağlar, bir üst döngü işlenmeye devam edecektir.

32

33 3Niteleyiciler (Modifiers)

34 3 Niteleyiciler (Modifiers) Access Modifiers (Erişim Niteleyicileri) Niteleyicilerde Metod Ezme (Access Modifiers Overriding) Diğer Niteleyiciler

35 Niteleyiciler (Modifiers) Niteleyiciler derleyiciye, kod bloğu içinde oluşturulan sınıf ve sınıf elemanları ile ilgili bilgi sağlayan anahtar kelimeler grubudur. En sık kullanılan niteleyiciler erişim niteleyicileridir. Bunlar; public protected private Erişim niteleyicileri dışında belirli bir biçimde kategorize edilemeyen niteleyiciler de bulunmaktadır. Bunlar ise; final abstract static transient synchoronized volatile Tanımlama sırasında bir niteleyici ile belirlenmeyen sınıf elemanları default olarak belirlenir. Default kod içerisinde kullanılan bir anahtar kelime olmayıp, bir niteleyici saptanmamasını ortadan kaldırmak için otomatik olarak atanır. Access Modifiers (Erişim Niteleyicileri) Erişim niteleyicileri olarak adlandırılan niteleyiciler, sınıf ve sınıf elemanlarının (değişken, method) erişim seviyeleri ile ilgili kısıtlama sağlar. Sınıf, değişken ya da metodların tanımlamalarında kullanılan bu anahtar kelimelerle erişim kısıtlamaları belirlenerek oluşturulan kodun güvenliği artırılır. Bazı istisnalar dışında erişim niteleyicileri tarafından kontrol edilebilen değişkenler sınıf seviyesi değişkenlerdir. Bir sınıfın içerisinde tanımlanan değişkenler erişim niteleyicileri ile belirlenmemiş olabilir. Bir metod değişkeni sadece o metodun içerisinde kullanılır. public Bir Java programında public olarak tanımlanan bir sınıf, değişken ya da metod herhangi bir kısıtlama olmaksızın kullanılabilir. Bir uygulamanın main() metodu, tüm Java runtime ortamlarından çağırılabilmesi için public olarak tanımlanır. Üst sınıflarda (top-level class) kullanılabilen tek erişim niteleyicisi public tir. Üst sınıflarda private ya da protected tanımlaması yapılmamaktadır. private private olarak tanımlanan değişken ya da metodlar, sadece bulunduğu sınıf içinde kullanılabilir. Tanımlandığı sınıf dışından erişimi mümkün değildir. protected Sadece değişken ve metodlar protected olarak tanımlanabilir. protected sınıf elemanları bulundukları paket (package) içerisinde erişilebilir durumdadır. Bu özelliğiyle default yapısında benzemekle beraber, yer aldığı sınıfın alt sınıfları (sub classes) tarafından da erişilebilir durumdadır. protected olarak tanımlanan sınıf elemanı, bulunduğu sınıfın inherit edildiği bir başka package içerisinden de erişilebilir durumdadır.

36 30 Bölüm 3 Niteleyicilerde Metod Ezme (Access Modifiers Overriding) Niteleyici olarak adlandırılan sınıf elemanlarında overriding aşağıda belirtilen biçimlerde gerçekleşir. Geçerli Overriding Şekil 1: private default protected public private olarak tanımlanan bir metod; private, default, protected ve public metodlar tarafından override edilebilir. Default bir metod; default, protected ve public metodlar tarafından override edilebilir. protected bir metod; protected ve public metodlar tarafından override edilebilir. public bir metod ise sadece public bir metod tarafından override edilebilir. Geçersiz Overriding Şekil 2: public protected default private Default bir metod; private bir metod tarafından override edilemez. protected olarak tanımlanan bir metod; default ve private metodlar tarafından override edilemez. public bir metod ise; protected, default ve private metodlar tarafından override edilemez. Diğer Niteleyiciler Java da kullanılan diğer niteleyicilerin tanımlanmasında sıra önem taşımaz. Örneğin public final tanımlaması ile final public tanımlaması birbirinden farklı değildir. Yine ptotected static ile static protected tanımlamaları aynı şekilde geçerli olacaktır. final final niteleyicisi, sınıf, metod ve değişkenlere uygulanmaktadır. final olarak belirlenen bir sınıf elemanı değiştirilemez. Örneğin, class SubMath extends java.lang.math { } ifadesi derlendiğinde, Can t subclass final classes. hatası verecektir. Dikkat edilmesi gereken önemli noktalardan biri, final bir değişken bir nesneye refere edildiğinde, değiştirilemeyen nesnenin instance ı (örnek) değil, referans tipli değişkendir. Bir başka deyişle; final bir referans nesne değişkeni değiştirilemez ancak yaratılan instance bu kısıtlanmadan etkilenmez. Final niteleyicisinin C# taki karşılığı sealed anahtar kelimesidir.

37 Niteleyiciler (Modifiers) 31 abstract abstract niteleyicisi sınıf ve metodlara uygulanmaktadır. abstract,. Microsoft.NET platformu üzerinde kullanılan Visual Basic.NET dilinde abstract bir sınıf oluşturmak için kullanılan anahtar kelime MustInherit tir. Buradan anlayacağınız gibi, abstract bir sınıftan mutlaka türetme yapılmalıdır ve türetilen sınıf kullanılmalıdır. Eğer bir sınıf birden fazla abstract metoda sahipse, derleyici sınıfın abstract olarak tanımlanmasını zorlar. Bu durum kullanılabilirliği artırır. Sınıfı kullanırken, türetilen sınıf kullanılması gerektiğini ya da örneklenebileceğinin belirlenmesi için bakılması gereken yer sınıfın tanımlamasıdır. Aşağıda belirtilen durumlardan en az birisi gerçeklendiğinde, derleyici bir sınıfın abstract olarak tanımlanmasını zorlayacaktır. Sınıf birden çok abstract metoda sahipse Sınıf implementasyon sağlamayan bir veya birden çok abstract metod inherit ediyorsa Sınıf bir arayüz (interface) implemente etmek üzere tanımlandığı halde, interface in tüm metodları için implementasyon sağlamıyorsa static static niteleyicisi değişkenler, metodlar hatta bir metodun parçası olmayan kod blokları için kullanılabilir. static olarak belirlenen sınıf elemanları bir sınıfla bağlantılı olmaktan çok sınıfa ait olarak düşünülebilir. static olarak belirlenmiş bir değişkenin değeri, ne kadar instance (örnek) türetilmiş olursa olsun değerini koruyarak sabit kalacaktır. static bir değişkeni refere etmenin iki yolu vardır: Sınıfın instance ına referans verme yolu ile. Sınıf adı ile. Metodlar da static olarak tanımlanabilir. Sınıfın static verilerine ulaşabildikleri ve sınıfın diğer static metodlarını çağırabildikleri halde, static metodlar sınıflarının non-static (statik olmayan) elemanlarını kullanamazlar. Non-static metodlar this adlı örtülü (implicit) bir değişkene sahiptir. Non-static metodlarda, hangi nesnenin ya da metodun olduğunu belirtmeden bir değişken veya metod çağırılabilir. Örnek Uygulama 3.1: 1 class Xyz 2 { 3 int ix; 4 void f1() { 5 ix++; 6 } 7 } Örnek Uygulama 3.1 de tanımlanan ix değişkeni, hangi nesne ya da metoda ait olduğu belirtilmeden ix++ ifadesi ile artırılmaktadır. Derleyici varsayılan olarak bu ifadeyi this.ix++ olarak algılar ve doğru bir biçimde işler. static metodlarda ise this yapısı bulunmamaktadır. static bir metod içerisinden, bir başka metod ulaşılmak ya da çağırılmak istendiğinde Undefined variable:this hatası verecektir.

38 32 Bölüm 3 static bir metod, non-static bir değişkene ulaşmak istediğinde hangi sınıfın değişkeni olduğunu ya da metodu çalıştıran sınıfın hangisi olduğunu belirterek çağırmak zorundadır. static bir metod non-static olarak override edilemez. Bu durumda Static methods can t be overriden hata mesajı verecektir. transient transient niteleyicisi sadece değişkenler için kullanılmaktadır. transient bir değişken kendi objesinin sürekli bir parçası olarak tutulmaz. synchronized synchronized değişkenler multithread programlarda, kritik kodlara erişimi kontrol etmek amacıyla kullanılır. Multithreading daha sonraki bölümlerde detaylı olarak incelenecektir. volatile volatile olarak belirlenen değişkenler asenkron olarak değiştirilebilen değişkenlerdir. volatile değişkenler çok işlemcili ortamların konusudur. Niteleyiciler ile ilgili özeti aşağıdaki tabloda bulabilirsiniz. Şekil 3: Niteleyici Sınıf Değişken Metod Constructor public protected (Default)* private final abstract static transient volatile synchronized * default bir niteleyici değil, niteleyici belirlenmediğinde varsayılan olarak kullanılan anahtar sözcüktür.

39 4Casting ve Conversion

40 4 Casting ve Conversion Basit Tiplerde Conversion Referans Tiplerde Conversion

41 Casting ve Conversion Java da, C# ve tüm programlama dillerinde olduğu gibi kullanılan her değişkenin bir tipi vardır. Bunlar int, long ve double gibi basit (primitive) değişkenler olduğu gibi, sınıf değişkenleri (Vector, Graphics vb) ya da arayüzler (LayoutManager ve Runnable vb) olabilir. Bu bölümde, veri tipleri arasındaki dönüşümleri ele alacağım. Veriler gerek açıkça (explicitly) ya da örtülü (implicitly) olarak dönüştürülebilir. Bir başka deyişle kendi bilgi ve isteğimiz dahilinde ya da derleyici tarafından otomatik olarak yapılan veri tipi dönüşümleri mümkündür. Açıkça gerçekleştirilen veri tipi dönüşümleri casting olarak adlandırılır. Bu durumda kodlama esnasında kendi isteğimizle bir değişkenin tipini değiştiririz. Örnek Uygulama 4.1: 1 ix = (int) mylix; Örnek Uygulama 4.1 de, mylix değişkeni, int olarak ix değişkenine casting yapılarak atanmaktadır. Örtülü olarak gerçekleşen veri tipi dönüşümleri ise, değişken atamaları sırasında derleyici tarafından otomatik olarak yapılmaktadır. Açık olmayan, örtülü dönüşümler conversion olarak adlandırılır. Örnek Uygulama 4.2: 1 int x, y; 2 double d; 3 x = 3; 4 y = 5; 5 d = x + y; Örnek Uygulama 4.2 de double değişkenine atanan tam sayı değerlerin toplamı değerini alacaktır. Bu durumda gerçekleştirilen değişken tipi dönüşümü derleyici tarafından otomatik olarak gerçekleştirilecektir. Java programlama dilinde basit tipler ve referans tipleri olmak üzere iki veri tipi kategorisi bulunmaktadır. Basit tipler olarak adlandırılan veri tipleri; boolean, char, byte, short, int, long, float, double dır. Referans tipleri ise; JDK tarafından sağlanan birçok sınıf, arayüzün yanısıra, Java geliştiricileri tarafından geliştirilen sınıflardır. Basit tipler ve referans tipleri olarak anılan tüm veri tipleri arasında, belirli kurallar dahilinde casting ve conversion mümkündür. Bu bağlamda, 4 çeşit veri tipi dönüşümü ortaya çıkmaktadır: Basit veri tipleri arasında conversion Basit veri tipleri arasında casting Referans tipleri arasında conversion Referans tipleri arasında casting

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ı

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ı

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ı

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ı

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 1 Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 Eclipse Mimarisi 4 Java Teknolojisine Genel Bir Bakış 6 Taşınabilirlik 6 Java Derleyicisi ve Bytecode 6 Java Sanal Makinası (Java Virtual Machine - JVM)

Detaylı

public static int Toplam int x, int y

public static int Toplam int x, int y static Kavramı 1 İçinde bulunduğu sınıftan nesne oluşturulmadan veya hiç bir nesneye referans olmadan kullanılabilen üyeler static olarak nitelendirilir. Metotlar ve alanlar static olarak tanımlanabilir.

Detaylı

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince

Detaylı

İÇİNDEKİLER İÇİNDEKİLER KODLAB

İÇİNDEKİLER İÇİNDEKİLER KODLAB İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

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ı

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ı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

PASCAL PROGRAMLAMA DİLİ YAPISI

PASCAL PROGRAMLAMA DİLİ YAPISI BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama

Detaylı

C Programlama Dilininin Basit Yapıları

C Programlama Dilininin Basit Yapıları Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

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

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir; abstract Sınıflar 1 Özet sınıflar ya da özet metotlar abstract anahtar sözcüğü kullanılarak tanımlanırlar. Bir temel sınıf içinde bildirilen abstract metotların içeriği boştur. Kendisinden yeni bir instance

Detaylı

Karabük Üniversitesi, Mühendislik Fakültesi...www.ibrahimcayiroglu.com WEB TEKNOLOJİLERİ

Karabük Üniversitesi, Mühendislik Fakültesi...www.ibrahimcayiroglu.com WEB TEKNOLOJİLERİ WEB TEKNOLOJİLERİ VISUAL STUDIO DA YENİ BİR PROJE OLUŞTURMA Visual Studio (VS) programını çalıştırdığımızda karşımıza boş bir ekran gelir. Yeni bir proje oluştururken File>New>Project yolu kullanılarak

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ı

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ı

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar Bölüm 5 Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar İçindekiler 5.1 Formatlı Yazdırma............................ 34 5.2 Döngü Deyimleri............................. 34 5.2.1

Detaylı

JAVASCRIPT JAVASCRIPT DİLİ

JAVASCRIPT JAVASCRIPT DİLİ JAVASCRIPT JAVASCRIPT DİLİ Netscape Navigator 2.0 ile birlikte geliştirilen JavaScript dili istemci taraflı (client-side) script dilidir. Web sayfalarında dinamik içerik sağlamak ya da kullanıcıyla iletişim

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ı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

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ı

Ders 8 Konu Özeti ve Problemler

Ders 8 Konu Özeti ve Problemler Ders 8 Konu Özeti ve Problemler C# ve Nesne Yönelimli Programlamanın 3 Prensibi Kapsülleme (Encapsulation) Nesne yönelimli programlamanın ilk prensibi kapsülleme (encapsulation) olarak adlandırılır. Bu

Detaylı

Mantıksal (Logic) Operatörler

Mantıksal (Logic) Operatörler Mantıksal (Logic) Operatörler Bilgisayar dillerinin hemen hepsinde, program akışını kontrol edebilmek ve yönlendirebilmek için mantıksal operatörler kullanılır. Java dilinde kullanılan mantıksal operatörler

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ı

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié DERSİN WEB SİTESİ: http://nucleus.istanbul.edu.tr/~bilprog2/ DeğiĢkenler ve Data Türleri

Detaylı

C Dersleri Bölüm 3 : Program akışı

C Dersleri Bölüm 3 : Program akışı İzmir Ekonomi Üniversitesi Bilgisayar Topluluğu www.ieubt.org C Dersleri Bölüm 3 : Program akışı Sorularınız için : programlama@ieubt.org Hazırlayan : Görkem PAÇACI (gorkem.pacaci@std.ieu.edu.tr) C Program

Detaylı

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon

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ı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)

Detaylı

Hafta 2 EkLab 1. C ye Giriş. Ozan ŞENYAYLA Çağrı YENİCE

Hafta 2 EkLab 1. C ye Giriş. Ozan ŞENYAYLA Çağrı YENİCE Hafta 2 EkLab 1 C ye Giriş Ozan ŞENYAYLA Çağrı YENİCE http://ozansenyayla.com/programlama.php KAYNAK: Görkem Paçacı / İlker Korkmaz / Kaya Oğuz - İEU BT Hafta 2 GİRİŞ EkLab 1 Programlama, genel olarak,

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ı

1 JAVASCRIPT NEDİR? 1

1 JAVASCRIPT NEDİR? 1 İÇİNDEKİLER IX İÇİNDEKİLER 1 JAVASCRIPT NEDİR? 1 2 TEST ORTAMINI TANIMAK (FİREFOX VE FİREBUG) 5 Firefox 6 Firebug 8 CSS Sekmesi 10 DOM Sekmesi 11 Net ve Çerezler Sekmeleri 11 Script Sekmesi 11 Konsol Sekmesi

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ı

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır: C VERİ TÜRLERİ BASİT VERİ TÜRLERİ Değişkenler, program içinde üzerinde işlem yapılan, veri saklanan ve durumlarına göre programın akışı sağlanan nesnelerdir. C de bir değişken kullanılmadan önce tanımlanmalıdır.

Detaylı

Java Programlamaya Giriş

Java Programlamaya Giriş Java Programlamaya Giriş Amaçlar: 1. Java kurulumu (Netbeans ve JDK) 2. Java Netbeans Kullanımı 3. Program yazma Java Kurulumu Java dili ile programlama yapabilmek için java jdk ve java kodlama yapılabilecek

Detaylı

C PROGRAMLAMA DİLİNE GİRİŞ

C PROGRAMLAMA DİLİNE GİRİŞ C PROGRAMLAMA DİLİNE GİRİŞ C Dilinin Tarihçesi 1972 de Dennis Ritchie tarafından AT&T Bell Laboratuarlarında B dilinden geliştirildi. C dili konusundaki ilk kitap 1978 de Dennis Ritchie ve Brain Kernighan

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)

Detaylı

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

1. HAFTA TEMEL KURULUM İŞLEMLERİ ve NESNE TABANLI PROGRAMLAMA KAVRAMLARI

1. HAFTA TEMEL KURULUM İŞLEMLERİ ve NESNE TABANLI PROGRAMLAMA KAVRAMLARI 1. HAFTA ve NESNE TABANLI PROGRAMLAMA KAVRAMLARI TMYO Bilgsayar Teknolojileri Uzaktan Eğitim Bölümü Nesne Tabanlı Programlama Zafer YAVUZ zaferyavuz@ktu.edu.tr Sunum İçeriği NESNE TABANLI PROGRAMLAMA JAVA

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ı

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

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Ders İçeriği An introduction to Object-oriented programming with Java Third Edition Update Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Nesneye Yönelik Öğr.

Detaylı

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Algoritma ve Programlama: Karar Yapıları ve Döngüler Algoritma ve Programlama: Karar Yapıları ve Döngüler Bir algoritma, herhangi bir programlama dili (C, C++, Pascal, Visual Basic, Java gibi) ile kodlandığında program haline gelir. Algoritmada yer alan

Detaylı

C#.NET ile PROGRAMLAMAYA GİRİŞ

C#.NET ile PROGRAMLAMAYA GİRİŞ C#.NET ile Neden C#.NET programlama dili? C, Java ailesinden bir programlama dilidir Platformdan (işletim sistemi-makine) bağımsız yazılım geliştirme Nesne tabanlı (OOP Object Orianted Programming) Consol,

Detaylı

Programlama Dilleri 3

Programlama Dilleri 3 Tür Dönüşümü 1 Farklı türden değişkenlerin aynı ifade içinde işlem görmeleri için tür dönüşümü kullanılır. Tür dönüşümlerini aşağıdaki şekilde gruplara ayırmak mümkündür: Tür Dönüşümleri Bilinçli(explicit)

Detaylı

İNTERNET TABANLI PROGRAMLAMA

İNTERNET TABANLI PROGRAMLAMA İNTERNET TABANLI PROGRAMLAMA VISUAL STUDIO DA YENİ BİR PROJE OLUŞTURMA Visual Studio (VS) programını çalıştırdığımızda karşımıza boş bir ekran gelir. Yeni bir proje oluştururken File>New>Project yolu kullanılarak

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ı

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. C PROGRAMLAMA FONKSİYONLAR Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. Daha büyük programlar yazmanın en kolay yolu onları küçük parçalar halinde yazıp sonra

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ı

MOBİL UYGULAMA GELİŞTİRME

MOBİL UYGULAMA GELİŞTİRME MOBİL UYGULAMA GELİŞTİRME Hedefler Bu üniteyi çalıştıktan sonra; Android projesi oluşturabilir, Android projesini çalıştırabilir, Android projesi genel yapısını açıklayabilir, Activity kavramını açıklayabilir,

Detaylı

2007-2008 Bahar. BM 211 Programlama Dilleri 3 1

2007-2008 Bahar. BM 211 Programlama Dilleri 3 1 Programlama Dilleri III 2007-2008 Bahar BM 211 Programlama Dilleri 3 1 Ders Hakkında Ders Sorumlusu Öğr.Gör. Bora UĞURLU Ders Slaytları İçin http://members.comu.edu.tr/boraugurlu/ Dersle İlgili İletişim

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini

Detaylı

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6 ix Yazılım Nedir? 2 Yazılımın Tarihçesi 3 Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5 Yazılımın Önemi 6 Yazılımcı (Programcı) Kimdir? 8 Yazılımcı Olmak 9 Adım Adım Yazılımcılık 9 Uzman

Detaylı

2013-14 GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

2013-14 GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI 2013-14 GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI KOÜ Mekatronik Mühendisliği Bölümü/MKT-103-Görsel Programlama Dersi - Ara Sınav J-grubu Ad-Soyad:...No:... J GRUBU-süre:70dk 1.) Aşağıdaki

Detaylı

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1 Görsel Programlama DERS 01 Görsel Programlama - Ders01/ 1 Takdim Planı Nesneye Dayalı Programlama Kavramı Nesne, Sınıf Kavramı Java Programlama Dili Java Programlama Dili Temel Özellikleri Java Sürümleri

Detaylı

mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar

mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar Algoritma ve Programlamaya Giriş mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar İçerik Algoritma Akış Diyagramları Programlamada İşlemler o o o Matematiksel Karşılaştırma Mantıksal Programlama

Detaylı

Burak Kıymaz 13.10.2015 JAVA FX

Burak Kıymaz 13.10.2015 JAVA FX JavaFx neden çıktı? JAVA FX Eskiden desktop için swing kullanılırdı fakat pek iyi değildi. Javafx bu konuda css kullanmaya da izin verdiği için daha iyi bulundu. xml veriyi biçimlendirmek için kullanılan

Detaylı

Program AkıĢ Kontrol Yapıları

Program AkıĢ Kontrol Yapıları C PROGRAMLAMA Program AkıĢ Kontrol Yapıları Normal Ģartlarda C dilinde bir programın çalıģması, komutların yukarıdan aģağıya doğru ve sırasıyla iģletilmesiyle gerçekleģtirilir. Ancak bazen problemin çözümü,

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 1 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlamaya C ile Programlamaya Yazılım: Bilgisayarın işlemler yapması ve karar vermesi

Detaylı

Bölüm 10: PHP ile Veritabanı Uygulamaları

Bölüm 10: PHP ile Veritabanı Uygulamaları Bölüm 10: PHP ile Veritabanı Uygulamaları -231- Öğr.Gör. Serkan DİŞLİTAŞ 10.1. PHP PHP, platformdan bağımsız sunucu taraflı çalışan betik bir web programlama dilidir. PHP programlama dili ile MySQL, MSSQL,

Detaylı

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu PROGRAM AKIŞ DENETİMİ Program akış denetimi konusu temel olarak 2 e ayrılır. Bunlar; 1)Koşul Deyimleri 2)Döngü Deyimleri KOŞUL DEYİMLERİ Koşul deyimleri temel olarak programı kontrol etmeye yararlar. Bunlara

Detaylı

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2 PROGRAMLAMA Bir problemin çözümü için belirli kurallar ve adımlar çerçevesinde bilgisayar ortamında hazırlanan komutlar dizisine programlama denir. Programlama Dili: Bir programın yazılabilmesi için kendine

Detaylı

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA GİRİŞ Bilgisayarların önemli bir kullanım amacı, veri ve bilgilerin kullanılarak var olan belirli bir problemin çözülmeye çalışılmasıdır. Bunun için, bilgisayarlar

Detaylı

MOBİL UYGULAMA GELİŞTİRME

MOBİL UYGULAMA GELİŞTİRME MOBİL UYGULAMA GELİŞTİRME Hedefler Bu üniteyi çalıştıktan sonra; Java programlama dilinde görsel arayüz tasarımı yapabilir, Java programlama dilinde görsel bileşenler üzerinde olay tanımlayabilir. Android

Detaylı

Bilgisayar Programlama

Bilgisayar Programlama Bilgisayar Programlama M Dosya Yapısı Kontrol Yapıları Doç. Dr. İrfan KAYMAZ Matlab Ders Notları M-dosyası Genel tanıtımı : Bir senaryo dosyası (script file) özel bir görevi yerine getirmek için gerekli

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ı

İlk Konsol Uygulamamız 2 İlk Windows Uygulamamız 9.Net Framework Yapısı 18 Neler Öğrendik 19. Veri Tipleri 24 Tanımlı Veri Tipleri 27 Basit Tipler 28

İlk Konsol Uygulamamız 2 İlk Windows Uygulamamız 9.Net Framework Yapısı 18 Neler Öğrendik 19. Veri Tipleri 24 Tanımlı Veri Tipleri 27 Basit Tipler 28 ix 1 İlk Konsol Uygulamamız 2 İlk Windows Uygulamamız 9.Net Framework Yapısı 18 Neler Öğrendik 19 23 Veri Tipleri 24 Tanımlı Veri Tipleri 27 Basit Tipler 28 Kayan Nokta Tipleri 30 Sayısal Veri Tipi Dönüşümleri

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları

Detaylı

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA 6. HAFTA EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA Öğr. Gör. S. M. Fatih APAYDIN apaydin@beun.edu.tr EMYO Bülent Ecevit Üniversitesi Kdz. Ereğli Meslek Yüksekokulu ALGORİTMA ÖRNEK1: İki sayının toplamı

Detaylı

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri 49 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B02) Çalıştırılabilir C ifadeleri ya bir işlem gerçekleştirir ( girilen verilerin toplanması

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. DAO İLE SQL KOMUTLARI Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. SQL-1 SELECT En basit SQL cümleciği oluşturmak için SELECT sözcüğü

Detaylı

Data Structures Lab 1 2012-Güz

Data Structures Lab 1 2012-Güz Data Structures Lab 1 2012-Güz C# Ortamı Tanıtımı ve Uygulama Geliştirilmesi Visual Studio 2010 Ortamının Temini -NYG'ndan MSDN üyeliği için başvuru dilekçesi alınıp doldurulmalı ve yine NYG'ye teslim

Detaylı

Fatura Dinamik Kodlama İyileştirmeleri

Fatura Dinamik Kodlama İyileştirmeleri Fatura Dinamik Kodlama İyileştirmeleri Ürün Grubu Kategori Versiyon Önkoşulu [X] Redcode Enterprise [ ] Redcode Standart [ ] Entegre.NET [X] Yeni Fonksiyon 5.0 Uygulama Netsis paketlerinin tüm modüllerinin

Detaylı

Görsel Programlama. Temel Veri Tipleri, Değişkenler, Operatörler, Akış Kontrolü, Sınıflar, Metotlar, Paketler ve JavaDoc

Görsel Programlama. Temel Veri Tipleri, Değişkenler, Operatörler, Akış Kontrolü, Sınıflar, Metotlar, Paketler ve JavaDoc Görsel Programlama Temel Veri Tipleri, Değişkenler, Operatörler, Akış Kontrolü, Sınıflar, Metotlar, Paketler ve JavaDoc Sözcüksel Kurallar Java programları aşağıdaki bileşenlerin bir kolleksiyonudur: Boşluk

Detaylı

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Ders 4: Diziler (Arrays( Arrays) barisgokce.com Ders 4: Diziler (Arrays( Arrays) Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Diziler Aynı tipteki bir veri gurubunun bir değişken içinde saklanmasıdır. Veriler Hafızada

Detaylı

SIMAN KULLANIM KILAVUZU

SIMAN KULLANIM KILAVUZU SIMAN KULLANIM KILAVUZU Önder Öndemir SIMAN Simülasyon programı Model Çatı ve Deneysel Çatı olmak üzere iki kısımdan oluşur. Model çatı genel itibariyle modullerin ve işlem bloklarının yazıldığı kısımdır.

Detaylı

WEB PROGRAMLAMA. PHP Temelleri 2. Dr. Erman Yukselturk

WEB PROGRAMLAMA. PHP Temelleri 2. Dr. Erman Yukselturk WEB PROGRAMLAMA PHP Temelleri 2 Dr. Erman Yukselturk Superglobal Değişkenler 1/4 Php de önceden tanımlanmış ve script in herhangi bir yerinden çağrılabilen ve çalıştirılabilen çevreye özel bilgiler sunan

Detaylı

Fonksiyonlar (Altprogram)

Fonksiyonlar (Altprogram) Fonksiyonlar (Altprogram) 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 gelmesi ile oluşur.

Detaylı

Java Dersi. Altuğ Bilgin Altıntaş

Java Dersi. Altuğ Bilgin Altıntaş Java Dersi Altuğ Bilgin Altıntaş Bu Dönem Hakkında Corba Servlet RMI Temel Kısım EJB JSP XML 2 JDBC JNI Çalışma Evreleri 6 Çalışma Evreleri 7 Java dosyasının hali 7 İlk Java uygulaması 7 Ciddi bir uygulama

Detaylı

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

enum bolumler{elektronik, insaat, bilgisayar, makine, gida}; BÖLÜM 12: Giriş C programlama dilinde programcı kendi veri tipini tanımlayabilir. enum Deyimi (Enumeration Constants) Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı

Detaylı

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken]

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken] Sayaçlar Düzenli olarak artan (+) veya azalan (-) sayı veya string ifadeler elde etmek için kullanılırlar. Eşitliğin her iki tarafındaki değişken isminin aynı olmasına dikkat edin. Bu durum matematik olarak

Detaylı

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015 Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015 KONU BAŞLIKLARI 1. Yazılım Mimarisi nedir? 2. Yazılımda Karmaşıklık 3. Üç Katmanlı Mimari nedir? 4. Üç Katmanlı Mimari

Detaylı

PORT HABERLEŞME SERİ PORT FARUK BOZAN

PORT HABERLEŞME SERİ PORT FARUK BOZAN PORT HABERLEŞME SERİ PORT FARUK BOZAN farukbozan@javatiryakileri.com bozanfaruk@gmail.com Merhaba değerli Java dostları. Bu yazımızda port haberleşme konusuna değineceğiz. Yalnız şu noktaya dikkatinizi

Detaylı

Ders 8: Metotlar. barisgokce.com

Ders 8: Metotlar. barisgokce.com Ders 8: Metotlar Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Metotlar C# içerisinde bir veya birden fazla kod bulunduran kod bloklarıdır. Bir nesnenin veya sınıfın programı

Detaylı

NESNE TABANLI PROGRAMLAMA

NESNE TABANLI PROGRAMLAMA NESNE TABANLI PROGRAMLAMA Temel Kavramlar Vize Hazırlık Ders Notları 1 NESNE TABANLI PROGRAMLAMA 1. NESNE TABANLI PROGRAMLAMA (OBJECT ORIENTED PROGRAMMING) NEDİR? Nesne tabanlı programlama, daha öncelerde

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ı

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 Bölüm 11 Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 11. Bölüm konuları Soyutlama kavramı Veri soyutlamasına giriş Soyut veri tipleri için tasarım konuları Dil örnekleri Parametreli

Detaylı

Nesneye Dayalı Programlama Laboratuvarı

Nesneye Dayalı Programlama Laboratuvarı 2013 2014 Nesneye Dayalı Programlama Laboratuvarı Ders Sorumlusu: Yrd. Doç. Dr. Salih GÖRGÜNOĞLU Laboratuvar Sorumluları: M. Zahid YILDIRIM İÇİNDEKİLER Deney 1: Visual Studio ve C++'a Giriş Uygulamaları...

Detaylı

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1 Görsel Programlama DERS 02 Görsel Programlama - Ders02/ 1 Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Nesneye yönelik programlamanın diğer programlama paradigmalarına karşı bir avantajı kodun yeniden

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ı

Temel Bilgisayar Programlama

Temel Bilgisayar Programlama Temel Bilgisayar Programlama C Programlamaya Giriş Yrd. Doç. Dr. Tahir Emre Kalaycı 2012 Yrd. Doç. Dr. Tahir Emre Kalaycı () Temel Bilgisayar Programlama 2012 1 / 29 İçerik 1 Temel Kavramlar Algoritmanın

Detaylı

Bilgisayarda Programlama. Temel Kavramlar

Bilgisayarda Programlama. Temel Kavramlar Bilgisayarda Programlama Temel Kavramlar KAVRAMLAR Programlama, yaşadığımız gerçek dünyadaki problemlere ilişkin çözümlerin bilgisayarın anlayabileceği bir biçime dönüştürülmesi / ifade edilmesidir. Bunu

Detaylı

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir. SQL PROGRAMLAMA BATCH Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı deyimidir. SELECT. UPDATE...... DELETE.. BATCH BATCH Özellikleri 1- Bir batch içinde bir deyimde yazım hatası olduğunda

Detaylı