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) info@bilgeadam.com 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ı

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 Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Elemanları Bu bölümde;

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ı

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ı

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ı

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ı

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

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

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama İçerik Java da İşleçler, Kontrol Akış ve Döngü Deyimleri Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu ders: Java da işleçler ( operators ) Java da kontrol-akış

Detaylı

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

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

Detaylı

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 Kodlarına Yorum Satırı Eklemek Java Paket Kavramı Java Kütüphane Kavramı Konsoldan Veri Çıkışı ve JOPtionPane Kütüphanesi JOptionPane Kütüphanesi Kullanarak

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ı

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ı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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

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

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

Detaylı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 1 (Değerler, Değişkenler, İşleçler, Tip Dönüşümleri, Mantıksal Operatörler) Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Değerler

Detaylı

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü Final Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :09.01.2013, 60 dak. Dikkat!!! Soru kitapçığında ve

Detaylı

4. Bölüm Programlamaya Giriş

4. Bölüm Programlamaya Giriş 4. Bölüm Programlamaya Giriş Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 4.1. C# ile Program Geliştirme Net Framework, Microsoft firması tarafından açık internet protokolleri ve standartları

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ı

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak:  Published by Juan Soulié Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama

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ı

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ı

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ı

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ı

C#(Sharp) Programlama Dili

C#(Sharp) Programlama Dili Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin

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ı

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ı

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ı

Diziler İndisli Değişkenler

Diziler İndisli Değişkenler Diziler İndisli Değişkenler Aynı tür bilgileri (öğrenci isimleri, şehir isimleri, kapı numaraları, fakülteler vbg.) bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın

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ı

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN ESM-361 Mikroişlemciler 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN Bit operatörleri Bit operatörleri bit düzeyinde işlem yapan operatörlerdir; yani sayıları bir bütün olarak değil, bit bit

Detaylı

Programlama Dilleri III 1

Programlama Dilleri III 1 Temel Veri Türleri Programlama Dilleri III 1 İlk C# Programı class ilk_program1 static void Main() System.Console.WriteLine("Merhaba C#"); C# dilinde yazılmış kaynak kod dosyalarının uzantıları.cs dır.

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ı

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ı

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü JAVA DÖNGÜ DEYİMLERİ Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrarlanabilir. Java da bu işi yapan üç ayrı deyim vardır: while

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ı

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ı

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu https://zumrakavafoglu.github.io/

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ BBS515 Nesneye Yönelik Programlama Ders 2 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ print metodu System.out.print imleci aynı satırda tutar, System.out.println imleci bir alt satıra indirir Tamsayı

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ı

C# nedir,.net Framework nedir?

C# nedir,.net Framework nedir? 1 C# nedir,.net Framework nedir? C# nedir? C#, C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip iyi yönlerinin alındığı, güçlü basit, esnek, tip-güvenli(typesafe,tür dönüşümlerindeki

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ı

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5 İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5 2 VISUAL STUDIO GELİŞTİRME

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ı

Pointer Kavramı. Veri Yapıları

Pointer Kavramı. Veri Yapıları Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar

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ı

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ı

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

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 5 Nesneye Yönelik Programlamaya Giriş Bu

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ı

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI İÇİNDEKİLER VII İÇİNDEKİLER 1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.NET Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5 2 VISUAL STUDIO 2012 GELİŞTİRME

Detaylı

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

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

Detaylı

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ı

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ı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler C Programlama Dr. Serkan DİŞLİTAŞ 3.1. Sabitler Sabitler, tanımlanmasıyla birlikte program içerisinde

Detaylı

/*int sayi1, sayi2,toplam=0;

/*int sayi1, sayi2,toplam=0; static void Main(string[] args) { //--------------------1. ders-------------------- -------- / ekrana yazma ekrandan okuma sayısal değerleri okuma yer tutucular basit tip dönüşümü / /int sayi1, sayi2,toplam=0;

Detaylı

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1 JAVA DEĞİŞKEN VE OPERATÖRLER M.İLKUÇAR - imuammer@yahoo.com 1 JAVA Değişken : program içerisinde değeri dinamik olarak değişebilen yapılardır. Belirli bir tipi vardır. Bu yüzden tanımlandığı tipteki verileri

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ı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 1 Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Değerler ve Değişkenler Values & Variables 2 1 Değişkenlerin Özellikleri Tipi

Detaylı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne

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ı

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ş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri

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ı

İÇİNDEKİLER VII İÇİNDEKİLER

İÇİNDEKİLER VII İÇİNDEKİLER İÇİNDEKİLER VII İÇİNDEKİLER 1 JAVA 8 NEDİR? 1 Java Nasıl Çalışır? 3 HOTSPOT Teknolojisi Nedir? 5 Çöp Toplayıcı (GarbageCollector) Nedir? 5 Jar Nedir? 6 Java Geliştirme Ortamı 7 Açıklama Satırıları 8 Nesnel

Detaylı

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9 BTP 207 İNTERNET PROGRAMCILIĞI I Ders 9 Dizi Değişkenler (Array) 2 Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1, eleman2,, elemann)

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ı

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ı

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ı

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

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ı

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ı

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

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü ra Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :13.04.2017 60 dak. Dikkat!!! Soru kitapçığında ve cevap

Detaylı

Operator Aşırı Yükleme (Operator OverLoading)

Operator Aşırı Yükleme (Operator OverLoading) Operator Aşırı Yükleme (Operator OverLoading) Operator Aşırı Yükleme Operatör metotları bir nesnenin ifadeler içinde operatörlerle kullanıldığı zaman davranışını belirler. Temel veri türleri için operatörler

Detaylı

Java Temel Özellikleri

Java Temel Özellikleri Java Temel Özellikleri Java Programlama Dili Java programlama dili şu anda dünyadaki en popüler programlama dillerinden biri haline gelmiştir. Java SUN bilgisayar şirketince elektrikli ev aletlerinin birbiriyle

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ı

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ı

İÇERİK 2 Java Kodlaması için Gerekli Programlar JRE, JDK kurulması ve Başlangıç Ayarları Java Kodlamayı Kolaylaştıran IDE ler Java Kod Yapısı İlk Java

İÇERİK 2 Java Kodlaması için Gerekli Programlar JRE, JDK kurulması ve Başlangıç Ayarları Java Kodlamayı Kolaylaştıran IDE ler Java Kod Yapısı İlk Java JAVA KODLAMAYA GİRİŞ Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Kodlaması için Gerekli Programlar JRE, JDK kurulması ve Başlangıç Ayarları Java Kodlamayı Kolaylaştıran IDE ler Java Kod Yapısı İlk Java Programı

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ı

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ı

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ı

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ş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon

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ı

Internet Programming II

Internet Programming II Internet Programming II Elbistan Meslek Yüksek Okulu 2016 2017 Bahar Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU Kontrol deyimleri programlamanın olmazsa olmaz koşullarındandır. Şartlara (karşılaştırma) bağlı

Detaylı

BTEP243 Ders 3. class Yazım Kuralı:

BTEP243 Ders 3. class Yazım Kuralı: BTEP243 Ders 3 Sınıflar ve Nesneler Nesne tabanlı programlamada, programlamanın temeli sınıflardır (class). Nesnelerin yaratılmasında taslak (blueprint) görevi görür. Sınıflar; o Nesnelerin özelliklerinin

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ı

OPERATÖRLER Alıştırmalar

OPERATÖRLER Alıştırmalar Bölüm 6 : Operatörler 1 OPERATÖRLER Alıştırmalar Aritmetik Operatörleri Operatör Açıklama Grup + Toplama, artı işleci Đkili Đşlem (binary operator) - Çıkarma, eksi işleci Đkili Đşlem (binary operator)

Detaylı

Programlama Dili Prensipleri. Lab Notları 4

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

Detaylı

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

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

Detaylı