Mobil Uygulama Geliştirme 2.Hafta Öğr. Gör. Ali DURDU Java Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen (yorumlanan-interpreted) bir dildir. Java uygulamaları bilgisayar mimarisine bağlı olmadan herhangi bir Java Virtual Machine (JVM)'de çalışabilen tipik byte koddur. Java Programı Nasıl Çalışır • • • • • Java kodunu programcı yazar. Kod java derleyicisi ile derlenir. Bytecode adı verilen sanal makine kodu oluşur. Bytecode java sanal makinesi tarafından işletilir. Java sanal makinesi her platform için farklı olarak bulunmaktadır. Bazı temel ifadeler • JDK (Java Development Kit) : Java geliştiricilerine yönelik Oracle ürünüdür. Java yazılım geliştirilmesi için gerekli tüm ekipmanların bulunduğu paketi içerir. Bunlardan bazıları; o Java : Yorumlayıcı ve başlatıcıdır. o Javac: Kaynak kodunu bytecode’ a çevirir. o Jar: İlgili sınıfların kütüphanelerini tek bir jar dosyanına çevirir. Arşivleme işlevi sunar. o Jconsole : Java izleme ve yönetim konsolu JDK içerisinden bunlar gibi pek çok bileşen bulunmaktadır. • JVM(Java Virtual Machine): Java sanal makinesi bytecode’a dönüştürülmüş kodları işler ve bulunduğu platforma uygun olarak çalıştırır. JDK’yı Elde Etme • • JDK Oracle tarafından ücretsiz olarak dağıtılmaktadır. JDK indirmek için www.oracle.com adresine girerek Downloads sekmesinden Java for Developers seçeneğini tıklamalıyız. Jdk Download seçeneğini tıklayınız. JDK’yı Elde Etme Eclipse Java uygulaması geliştirebilmek için en popüler ve Google’da önerdiği Eclipse IDE’si ihtiyacımızı rahatlıkla karşılamaktadır. http://www.eclipse.org/downloads/ adresinden Eclipse’i ücretsiz olarak indirebilirsiniz. Basit bir JAVA programını derlemek Öncelikle çalışma alanınızın konumunu seçiniz. Basit bir JAVA programını derlemek Yeni bir proje açmak için File > New > Java Project seçeneğini seçiniz. Basit bir JAVA programını derlemek Yeni bir proje açmak için File > New > Java Project seçeneğini seçiniz. Basit bir JAVA programını derlemek Açılan pencereden proje adınızı belirleyin. Yüklediğiniz JRE sürümünü seçmeyi unutmayınız. 'add project to build path' seçeneğini işaretlerseniz yeni eklenecek class'lar projenizin yoluna eklenmiş olacaktır. Bunu yapmanız önerilir. Next tuşundan sonra son olarak finish tuşu ile yeni bir java projesi oluşturmuş olursunuz. Basit bir JAVA programını derlemek Yeni bir sınıf ekleyerek ilk sınıfımızı oluşturuyoruz. Basit bir JAVA programını derlemek Açılan pencereden sınıfımızın adını yazarak devam ediyoruz. Finish tuşu ile yeni sınıfımız oluşmuş olacaktır. Yukarıdaki kodu yazarak programımızı Run tuşu ile derleyebiliriz. İlk programımız çalışmış ve konsolda sonucu görebiliriz. IDE Ortamı IDE Ortamı Kırmızı çizgili yer kaynak dosyaları göstericidir. Mavi çizgili yer renklendirmeli editör ile kodların yazıldığı kısımdır. Siyah çizgili yer kodun bir haritasını sunar. Yeşil çizgili yer konsol ve hata ekranlarının bulunduğu kısımdır. Kaynak Klasörlerin Anlamları src: Kaynak kodlar src adlı klasörde tutulur. lib: Harici java kütüphanelerinin projeye eklenmesi için kullanılan jar dosyalarının saklandığı yerdir. Lib klasörü altında bir jar dosyasını proyeje eklemek için dosyaya sağ tıklayıp Buid Path > Add to Built Path seçeneğini seçmeliyiz. Java Programının Temel Yapısı Kod İşlev package javaapp; Birinci kısım ihtiyaç olan komutları barındıran paketlerin çağrılmasıdır. public class ilkclass{ … … … } İkinci kısım sınıf tanımıdır. Tüm kodlar sınıflar içerisinde yazılır. public static void main(main(String[] args){ … … … } Üçüncü kısım ise ana program kısmıdır. Ana programın adı main olmak zorundadır. Projenin ilk başlangıç noktası burasıdır. Java Programı Genel Kurallar Her java programı en az bir sınıf içerir. Sınıfların ve fonksiyonların başlangıçı { ile yapılır ve } ile kapatılır. Her { } arasında yazılan kodlar bir grup oluşturur. Her komut ; ile sonlanır. Büyük küçük harf duyarlılığı vardır. Çok satırlı açıklama satırı /* ile başlar */ ile biter. Tek satırlı açıklama satırı için // kulanılır. Değişken tanımlarında ilk karekter sayı ile başlayamaz. Komut ve özel anlam içeren ifadeler değişken adı olarak verilemez. İşlem Operatörleri operatör sembolü kullanlışı işlem sonucu tekli negatif alma – –a a’nın negatifini alır son artım ++ a++ önce a’nın değerini al, kullan, sonra 1artır. ön artım ++ ++a önce a’nın değerini 1 artır, sonra kullan. son azaltım –– a–– önce a’nın değerini al, kullan, sonra 1son azaltım azalt. ön azaltım –– ––a önce a’nın değerini 1 azalt, sonra kullan. Aritmetiksel İşlem Operatörleri Operatör Sembolü Kullanılışı İşlem Sonucu çarpma * a*b a ile b’nin çarpımı bölme / a/b a’nın b’ye bölümü kalan % a%b a’nın b’ye bölümünden kalan toplama + a+b a’nın b ile toplanması çıkarma – a-b b’nin a’dan çıkarılması Atama Operatörleri Operatör Sembolü Kullanılışı İşlem Sonucu Atama = x=y y’nin değerini x’e ata Topla-ata += x+=y x + y’nin değerini x’e ata Çıkar-ata –= x–=y x – y’nin değerini x’e ata Çarp-ata *= x*=y x * y’nin değerini x’e ata Böl-ata /= x/=y x / y’nin değerini x’e ata Kalanını ata %= x%=y x % y’nin değerini x’e ata Operatörlerde Öncelik Sırası birleşme öncelik operatör sırası operatörün adı ve işlevi soldan sağa 1 *, /, % çarpma, bölme, modüler işlem (multiplicative operators) soldan sağa 2 +, - toplama, çıkarma (additive operators) soldan sağa 3 <, >, >=,<= i̇lişkisel operatörler (relational operators) soldan sağa 4 ==, != eşitlik, eşitsizlik kontrolü (comparisons for equality and inequality) soldan sağa 5 & bit düzeyinde ve (bitwise and) soldan sağa 6 | bit düzeyinde veya (bitwise or) soldan sağa 7 && mantıksal ve (logical and) soldan sağa 8 || mantıksal veya (logical or) sağdan sola 9 ?: koşul operatörü (conditional operator) sağdan sola 10 = +=-=*= /=%=>>=<<= |&= ^= atama operatörü (assignment operator) Değişken Türleri Integer : Tamsayı tipinde sayıları tanımlar. int a=6; float,double: Ondalık sayıları tanımlar. float x,y,z; u; x=3; y=5; z=6; u=1.4453; char: Ascii kodunu depolar. char c ='a'; boolean: Mantısal doğru veya yanlış bilgisini saklar. boolean b= false; Karar İfadeleri if Deyimi Programın çalışma sırasını belirli bir şartın sağlanma durumunda bir yöne sağlanmama durumunda ise diğer yöne yönlendiren ifadelerdir. if (şart) { Komut 1; } else { Komut 2; } ? Operatörü ile if kullanımı Şart ? Komut 1: Komut2; Karar İfadeleri Switch Case Programın çalışma sırasını belirli bir şartın sağlanma durumunda bir yöne sağlanmama durumunda ise diğer yöne yönlendiren ifadelerdir. switch (durum) { case 1: Komut 1; break; case 2: Komut 2; break; case 3: Komut 3; break; default: Komut 4; break; } Döngüler While Programın çalışmasını belirli bir şart sağlanıncaya kadar komutları tekrar işletmek için kullanılan ifadelerdir. while(şart) { Komut 1; Komut 2; … Komut n; } Döngüler for Programın çalışmasını belirli bir şart sağlanıncaya kadar komutları tekrar işletmek için kullanılan ifadelerdir. for (ifade1;ifade2;ifade3) { Komut 1; Komut 2; … Komut n; } Döngüler break Bir döngü tekrar ederken kullanıldığı yerde döngüyü kırarak programın işleyişini döngü dışına çıkartır. for (ifade1;ifade2;ifade3) { Komut 1; Komut 2; … Komut n; if (sart) break; } Döngüler continue Bir döngü tekrar ederken kullanıldığı yerde peşinden gelen satırlardaki kodları işlemeden programın işleyişini döngü başına çıkartır. for (ifade1;ifade2;ifade3) { if (sart) continue; Komut 1; Komut 2; … Komut n; } Diziler – Tek Boyutlu Aynı türden verileri içeren bir veri kümesi barındırır. Her bir elemanın indisi vardır. Bu indisler üzerinden elemanlara erişilebilir. Tip DiziAdı[ ] = new Tip [ Eleman Sayısı ]; int [ ] a= new int [5] ; Diziler – Çok Boyutlu Ad Soyad Ödeme1 Ödeme2 Ödeme3 Ali DURDU 700 600 650 Osman KARA 900 800 700 Sezai ŞENER 300 400 350 Asım AK 500 450 470 Yasin ER 600 500 480 tür [,] degisken=new tür[satir,sutun]; int [,] odemeler=new int [5,4]; Nesne Yönelimli Programlama Nesne: Nesne türetildiği sınıfın özelliklerini (property) ve metotlarını(function) içeren bir bileşendir. Nesnenin yapısı sınıfdır. Sınıfın özelliklerine üyeler denir. Nesnenin 4 temel özelliği vardır. 1-Soyutlama(Abstract): Bir işlevi yerine getirecek nesnenin özelliklerini genelleştirmektir. Örneğin bir araba düşünürsek binlerce çeşit araba vardır. Fakat arabaların standart özellikleri vardır. Mesela rengi, kapı adedi, maksimum hızı, yolcu adedi vs. Bunlar her araba için olabilecek özelliklerdir. Soyutlama bir nesnenin bilgisayarda tanıtılması anlamında kullanılabilr. 2-Sarmalama(Encapsulation): Sınıfı oluşturan özellikleri ve işlevleri bu sınıfı kullanacak olan kullanıcılardan gizlenmesidir. 3-Miras Alma(Inheritance): Nesneye yönelik programlamada, bir nesne, genellikle bir nesne sınıfına ait bir örnektir. Bir sınıf başka bir sınıftan kalıtım alabilir. Yani çocuğumuzun özelliklerinin bize benzemesi bir kalıtım alma meselesidir. Sınıflarda türetildikleri sınıfların özelliklerini alırlar. Nesne Yönelimli Programlama 4-Çok Biçimlilik(Polymorphism): Farklı nesnelerin, aynı mesaja (olaya ya da uyarıma) farklı şekillerde cevap verebilme yeteneğidir. Her nesne sınıfı, kendi metotlarını paketlediği için ve bu metotlar programın kalan kısmı için gizli olduğundan, farklı sınıflar aynı isimde bazı metotlara sahip olabilirler. Nesne Tanımı class Sınıfİsmi { Özellik Tanımları; Metod Tanımları; } Nesne Yönelimli Programlama class Daire { public double yariCap; public double alan() { return 3.14159 * yariCap * yariCap; } public double cevre() { return 2 * 3.14159 * yariCap; } } Nesne Yönelimli Programlama Sınıftan nesne türetme Daire d = new Daire(); Metotlara Erişim d.cevre(); d.alan(); Özelliklere Erişim d.yariCap; Nesne Yönelimli Programlama Miras Alma class sınıfadı extends miras_alınacak_sınıfadı { özellikler…. metotlar… } Nesne Yönelimli Programlama Miras Alma class Kamyon extends Arac { public teker_sayisi; public motor_gucu; }