15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 Java’da İlkel Veri Tipleri (Primitive Data Types) Java’da Farklı Türde Değerler Tutmak İçin, Farklı Değişkenler Vardır. Bu Değişkenlere İlkel Denmesinin Sebebi, Sadece Veri Tutmak İçin Kullanılmalarıdır. Size, Kullanmanız İçin Herhangi Bir Method, Değişken Sunmazlar. Java’da OOP İçin Bu İlkel Veri Tiplerinin Hepsinin Karşılığı Olan Objeler Vardır. Ve Bunların Isimlendirmesi Değişken Tipleriyle Aynıdır. Tek Fark, Objelerin Adlarının Baş Harfleri Büyüktür. Örn : int -> Integer double -> Double byte : 8 Bit’lik Veri Tutar -128, 127 Arasındadır. Büyük Boyutlu Veri Blokları, İkili Veri (Binary) Tutulmasında İşe Yarar. short : 16 Bit Sayı Tutar. -32768, 32767 Arasında Değer Alır. Büyük Boyutlu Veri Bloklarında, Integer’a Göre Daha Az Yer Kaplar. int : 32 Bit Sayı Tutar. -2 147 483 648, 2147 483 647 Arasında Değer Alır. long : 64 Bit Sayı Tutar. -9 223 372 036 854 775 808 ve 9 223 372 036 854 775 807 Arasındaki Değerleri Alır. Int Yetmediği Zaman Kullanılmalıdır. Sistem Zamanı & Dosya Boyutları, Bu Formattadır. double : 64 Bit Küsüratlı Sayı Tutar. Büyük Değerler Tutmasına Karşın, Küsüratlı Değerler İçin Hassas Değildir. float : 32 Bit Küsüratlı Sayı Tutar. Küsüralı Değerler İçin Hassas Değildir. Ama, Hesaplanması, Erişilmesi Double’a Göre Çok Daha Kısadır. Genellikle Oyunlarda Koordinat Sistemlerinde Kullanılır boolean : Durum Değişkenidir. Sadece true ve false değerlerini Alır. char : 16 Bit UTF-8 Kodlamasında Karakter Tutar. Karakterlerin ASCII Değerlerinin Karşılığı int’e cast Edilip Alınabilir. 0, 65 535 Arası Değerler Alır. String : String aslında bir Objedir. İlkel Veri Tipi Değildir. Ama İlkel Veri Tipi Şeklinde String a = “Selam” Gibi Kullanılabilir. Emir Civaş – i.am@live.jp Sayfa 1 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 Java İsimlendirme Şekli (Naming Conventions) Conventions Kelime Olarak Gelenek Anlamına Gelir. Java Programlama Dilinde, Objeler, Methodlar, Değişkenler İçin İsimlendirme Geleneği Mevcuttur.Uygulamak Zorunlu Olmamasına Karşı, Tüm JDK Bu Geleneklere Yazılmış Olduğu İçin, Yazım Geleneğine Uymak Mantıklıdır. Ne Örnek Açıklama Paket İsimleri package wissen.java; Küçük Harfle Yazılır Class İsimleri class Ornek1 Ilk Harf Büyük, Devamı Küçük Class İsimleri Class MyOrnek Her Kelimenin Ilk Harfi Büyük, Devamı Küçük Interface İsimleri İnterface IListener I İle Başlar, Her Kelimenin İlk Harfi Büyük, Devamı Küçük Interface İsimleri İnterface OnClickListener Her Kelimenin İlk Harfi Büyük, Devamı Küçük Değişken İsimleri int a; Küçük Harfle Yazılır Değişken İsimleri İnt toplamDeger; Ilk Kelimenin Bas Harfi Kucuk, Diğerlerinin İlk Harfi Büyük Method İsimleri void hesapla() Küçük Harfle Yazılır Method İsimleri void kullaniciKontrol() Her Kelimenin Ilk Harfi Büyük, Devamı Küçük Sabit Değişkenler İnt MAX_VALUE = 100; Bütün Harfler Büyük Açıklama // Aciklama Satiri Tek Satir Aciklama Açıklama /* Çok Satır Açıklama */ Çok Satır Açıklama Açıklama /* Parça Açıklama */ Parça Açıklama Emir Civaş – i.am@live.jp Sayfa 2 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 Java Sık Kullanılan Terimler JRE : Java Runtime Environment (Uygulama Çalıştırmaya Yarayan Paket) JDK : Java Development Kit (Uygulama Geliştirmeye Yarayan Paket, JRE’yi İçerir) SDK : Software Development Kit (Uygulama Geliştirme Paketi) lib : Kütüphane Thread : Çalışan Uygulama Parçacığı Exception : Uygulamanın Çalışması Sırasında, Anormal Bir Durum Meydana Geldiğinde Oluşturulan Obje (İstisna) Try .. Catch : Oluşturulan Exception’i Yakalayıp, Önlem Almayı Sağlayan Kod Bloğu Snippet : Kod Bloğu, Kodun Bir Parçası main : Uygulamanın Çalışması İçin Gerekli Olan main Methodu Constructor : Bir Objenin Yapıcı Methodu Initialize : Bir Değişkenin, Objenin Kullanmadan Önce, Oluşturulması, Değerinin Atanması Java Dosyası : IDE’de Kodların Yazıldığı, Text Formatındaki Dosya Class Dosyası : .java Dosyasının Derlenmiş Hali Olan Binary Dosya VM : Virtual Machine, Sanal Makine (.class Dosyalarını Çalıştırır) RunTime : Uygulamanın Çalışması Esnasında Demek Debug : Uygulamanın Hatalarının Ayıklanma Süreci Compile : Derlemek Run : Çalıştırmak Src : .java Dosyalarının Bulunduğu Klasör Paket : Src İçerisinde, .java Dosyalarının Bulunduğu Klasörler Object : Tipi Belli Olmayan Tür Null : Değeri Tanımlanmamış Scope : Tanım Alanı System : Java VM’in Çalıştığı Bilgisayar Emir Civaş – i.am@live.jp Sayfa 3 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 Java Class Yapısı Kullanılan IDE’de Bir Class Oluşturulduğu Zaman, Belirttiğiniz İsimde Bir Java Dosyası Oluşturulur. Ve içinde : public class VerdiğinizIsim { } Değeri Eklenir. Önemli : Dosya Isminizle, public class ... İsmi Aynı Olmak Zorundadır. Kodlar, Değişkenler, Methodlar, Class’ın Sınırlarını Belirten { ve } Arasında Yazılır. Varsa Paket İsmi, public class ...’ın Üzerinde İlk Satıra Varsa İmport Edilecek Diğer Class’lar public class ...’ın Üzerine, Paket İsminin Altına Yazılır. Class İçinde Kullanılan Methodlarda, Döngüler’de If Snippetlerde { } İle Ayrılan Bölümler, Kendi Scope’una Sahiptir. Yani if’in İçinde Tanımladığınız Bir Değişkene, İf’in Dışından (Altından) Erişemezsiniz, Sadece O If Bloğu İçinde Kullanabilirsiniz. Aynı Şey, Döngüler Ve Methodlar İçinde Geçerlidir. Emir Civaş – i.am@live.jp Sayfa 4 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 İlk Java Uygulaması “Hello World” Java’da Class’lar Hem Obje Olarak, Hem Çalıştırılabilir Uygulama Olarak Kullanılmaktadır. Bir Class’ın Çalıştırılabilir Uygulama Olması İçin, O Class’ta Main Methodu Olmalıdır. Main Methodu Direk VM Tarafından Çağrılacağı İçin Standart Yapıdadır. public static void main(String[] args) { ... } Args’nin Hariç, Herhangi Bir Şeyi Değiştirdiğinizde O Uygulama Çalışmaz. System.out : Emir Civaş – i.am@live.jp Ekran Sayfa 5 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 Java Özel Karakterler (Escape Sequences) System.out.println() Ekrana Birşeyler Yazmamızı Sağlayan Bir Method. Ama Ekrana Yazılacak Şeylerin Formatını Ayarlamamızı Sağlamaz. Bunu Kaçış Karakterleriyle Yapabilir. Kaçış Karakterleri. Kodun İçinde Özel Anlamlar İfade Eden Karakterleri, Ekrana Basmamızı Sağlayan Karakter Yapılarıdır. Örneğin : System.out.println(“Merhaba”); Ekrana Merhaba Yazdırır. Ama Ya Ekrana “Merhaba” Yazmak İstiyorsak ? İşte Bu Durumda, Kaçış Karakterlerini Kullanmamız Gerekir. “ “ İçinde “ İşareti Basmanın Yolu \” ‘dur. System.out.println(“\”Merhaba\””); Sekans Açıklama Örnek Sonuç \n Alt Satır “Selam\nDünya” Selam Dünya \t Tab 4-8 Boşluk “Selam\tDünya” Selam \” Çift Tırnak “\”Dedi\”” “Dedi” \’ Tek Tırnak “\’Dedi\’” ‘Dedi’ Emir Civaş – i.am@live.jp Dünya Sayfa 6 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 Java Değişkenlerle İşlemler Modulus İşlemi : (A % B = C ) A Sayısının B Sayısına Bölümünden Kalan’ı Verir. Modulus Turn Based Mantığıyla Yapılacak İşler İçin Önemlidir. Örneğin 2 Oyunculu Bir Oyun Düşünün, 1 Tur A, 1 Tur B Oyuncusu Oynayacak. int siradakiOyuncu = (siradakiOyuncu % 2) + 1; // 0 İse 1, 1 İse 0 Döner C Değeri 0 İle B-1 Arasında Olur Emir Civaş – i.am@live.jp Sayfa 7 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 (Pre/Post) Increment/Decrement Sayısal Değişkenlerin Değeri + veya – 1 Değiştirilecekse; Bunun Komple Bir Aritmetik İşlem Yapmak Yerine Daha Hızlı Bir Yolu Var. Buna Increment / Decrement Denmekte. (Sadece Değeri 1 Değişecek İşlemler İçin). Increment Decrement Pre Post : : : : Emir Civaş – i.am@live.jp Arttırmak Azaltmak Öncesinde Sonrasında Sayfa 8 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 System.out.println() İçinde Aritmetik İşlemler System.out.println() methodunun İçinde, Ekrana Basılacak Değeri Oluşturmak İçin, Bazen Farklı Parçaları, Değişken Değerlerini, Method Sonuçlarını Birleştirip Bastırmak Gerekiyor. Bu Birleştirme İşlemi İçin “+” İşareti Kullanılıyor. Dolayısıyla, Yapılacak Matematiksel İşlemler Parantez İçine Alınmalı. Emir Civaş – i.am@live.jp Sayfa 9 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 Koşul – Conditions – IF, ELSE Uygulama Geliştirilirken, Belirli Durumlarda, Uygulamanın İşleyişinin Değişmesi Gerekebilir. Bu Durumlarda Koşullar Kullanılır. Operator Örnek Açıklama == A == B A, B’ye Eşitse (vv) != A != B A, B’ye Eşit Değilse (vv) > A>B A, B’den Büyükse < A<B A, B’den Küçükse >= A >= B A, B ye Eşit Veya Büyükse <= A <= B A, B’ye Eşit Veya Küçükse Koşul Operatörleri : 1’den Fazla Koşulun Birbirlerine Bağımlılığını Belirtir. Operator Örnek Açıklama && Tüm Koşullar Sağlanmalı if ( a > 5 && b > 5) A 5’ten Büyükse VE B 5’ten Büyükse || En Az 1 Koşul Sağlanmalı if (a > 5 || b > 5) A 5’ten Büyükse VEYA B 5’ten Büyükse Sonucu boolean (true Yada False) Dönen Koşullar İçin Sadece == veya != Kullanılır Boolean sonuc = true; İf (sonuc == true) Emir Civaş – i.am@live.jp if (sonuc != true) Sayfa 10 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 Emir Civaş – i.am@live.jp Sayfa 11 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 Koşul – Conditions – SWITCH İf, else Gibi Farklı Koşullara Değilde, Sadece 1 Değişkenin Sayısal Değerine Bağlı Olarak Farklı İşler Yapmak İstiyorsanız. Switch – case Kullanabilirsiniz. Emir Civaş – i.am@live.jp Sayfa 12 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 Döngüler – For Eğer Kod’ta Belirli Bir Sayıda, Bir Snippet’i Yada Yapılan Bir İşlemi Tekrar Etmek İstiyorsanız. Döngüler Kullanırsınız. For Bu Döngülerden Bir Tanesi. Emir Civaş – i.am@live.jp Sayfa 13 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 Döngüleri, Koşullarla Birlikte Kullanıp. Çok Fantastik İşler Yapabilirsiniz Örneğin : 1’den 10’a Kadar Olan Sayılar Arasındaki Tek Sayıların Toplamı. 1’den 10’a Kadar Olan Sayılar Arasındaki Çift Sayıların Çarpımı Emir Civaş – i.am@live.jp Sayfa 14 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 Döngüler – While Matematiksel Değer Yerine, Koşulsal Döngüdür. Birşey Geçerli Olduğu Sürece Çalışır Emir Civaş – i.am@live.jp Sayfa 15 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 Döngüler – Do .. While For ve While Döngüleri, Başlamadan Önce Ve Her Adım Bittiğinde, Döngünün Çalışıp Çalışmayacağını Kontrol Ederler, Ona Göre Hareket Ederler. Do ... While Döngüleri, Daha Farklı İşler. İlk Seferde Koşula Bakmadan Döngü Çalışır, 2. Seferden İtibaren Koşul Kontrol Edilir. Koşul Sağlanmamasına Rağmen, Döngü 1 Kere Çalışıyor : Emir Civaş – i.am@live.jp Sayfa 16 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 String String Garip Bir Objedir. Çünkü Hem İlkel Değişken Hemde Obje Şeklinde Tanıtılıp Kullanılıyor. Aynı Zamanda Size Kullanmak İçin Bir Sürü Method Sunuyor. Stringlerin Amacı Karakter Katarları Tutmaktır. Emir Civaş – i.am@live.jp Sayfa 17 15.06.2013 – Wissen Akademie Java / Android Ders Notları #1 String Methodları Stringler Bir Obje Oldukları İçin, İlkel Değişkenler Gibi Veri Tutabildikleri Gibi, Bu Verilerin Üstünde İşlemler Yapmamızı Sağlayan Methodlarda Sunar. (String w1 = “Merhaba”, w2 = “Dünya”; ) Method Adı Örnek Sonuç Açıklama length w1.length() 7 Karakter Sayısı toUpperCase w1.toUpperCase() MERHABA Büyük Harf Ver. toLowerCase w1.toLowerCase() merhaba Küçük Harf Ver. equals w1.equals(w2) Boolean W1, W2’ye Eşit Mi equalsIgnoreCase w1.equalsIgnoreCase(w2) Boolean W1, W2’ye BK Harf Farketmeden Eşit Mi indexOf w1.indexOf(“M”) int M Varsa Indexi, Yoksa -1 Döner contains w1.contains(“tux”) Boolean W1’de “tux” Varsa true, yoksa false döner concat w1.concat(w2) String W1’in sonuna w2’yi Eklemiş Olarak Döner startsWith w1.startsWith(“Mer”) Boolean endsWith w1.endsWith(“xx”) Boolean isEmpty() w1.isEmpty() Boolean subString() w1.subString(2) String subString() w1.substring(0,3) String replace() w1.replace(“Mer”,”Bye”) String Emir Civaş – i.am@live.jp W1 Mer ile Başlıyorsa true, başlamıyorsa false döner W1 xx İle Bitiyorsa true, bitmiyorsa false döner W1=”” ise true, değilse false döner 2. Karakterden İtibaren, Stringin Geri Kalanını Döner Stringin ilk 3 Karakterlik Parçasını Döner Byehaba Sayfa 18