530 likes | 708 Views
EDUTIME Java Day 3. Serdar TÜRKEL. JAVA DİLİ TEMELLERİ. Java program yapısı Java’da sınıflar Veri türleri Diziler Metot niteleyicileri. Java Program Yapısı. Paket bildirimleri Ortam bilgileri Sınıf bildirimleri Oluşturucu Metotlar gövde metodu … başka sınıflar. Java Program Yapısı.
E N D
EDUTIMEJava Day 3 Serdar TÜRKEL
JAVA DİLİ TEMELLERİ • Java program yapısı • Java’da sınıflar • Veri türleri • Diziler • Metot niteleyicileri
Java Program Yapısı • Paket bildirimleri • Ortam bilgileri • Sınıf bildirimleri • Oluşturucu • Metotlar • gövde metodu • … başka sınıflar
Java Program Yapısı ornek1.java Paket tanımı package paket; Ortam bilgileri import javax.swing.JFrame; public class ornek1 oluşturucu public ornek1() Metot 1 public void topla(int a,int b) Metot 2 public static void carp(int a,int b) public static void main(String args[]) Gövde
Java Program Yapısı • Simge • Simgeler java programındaki en küçük birimdir. Derleyiciye anlamlı gelebilecek en küçük program öğesidir. Bir java programı simgeler toplamıdır. • Simgeler 5 kategoride toplanırlar
Java Program Yapısı • Tanıtıcılar (Identifiers) • Ayrılmış sözcükler (Reserve) • Ayırıcılar • Hazır bilgiler • İşleçler
Java Program Yapısı • Tanıtıcılar (Identifiers) • Değişkenlere, metotlara ve sınıflara verilen isimleri belirtir. Derleyici bu isimleri birbirinden farlı olarak tanır. Tanıtıcı oluştururken aşağıdaki noktalara dikkat edin. • Tanıtıcı bir harf, bir alt çizgi veya dolar işareti ile başlamalıdır. • Tanıtıcılarda boşluk karakteri bulunmaz.
Java Program Yapısı • Ayrılmış sözcükler : • Daha önceden tanımlanmış tanıtıcılar java tarafından ayrılmıştır, bunları tanıtıcı olarak belirtemezsiniz. • import , String vb.
Java Program Yapısı • Ayrıcılar : • Java derleyicisine program elemanlarının gruplanması hakkında fikir verirler. Örnek olarak { } , ; gibi karakterler.
Java Program Yapısı • Hazır Bilgiler : • Programdaki sabit değerlerdir. • İşleçler • Bir hesaplama ve değerlendirme işleminin veri veya nesne üzerinde yapılmasını belirtirler.
Java Program Yapısı • Açıklama işaretleri : • Açıklama işaretleri kod içerisinde açıklama eklemek için kullanılırlar. Derleme sırasında açıklama metinleri yok sayılırlar. /* * Bu işaretlerin arasında açıklama metni * eklenir. */ // veya bu şekilde tek satırlık bir açıklama eklenir.
Java İle İlk Program class ornek1{ public static void main(String args[]){ System.out.println(“edutime”); } } Yukarıdaki kodu ornek1.java adı ile kaydedin
Java İle İlk Program • Dosya uzantısının java’da çok önemli bir yeri vardır. Java derleyicisi .java uzantısında ısrar eder. Bu nedenle, sınıf ismi ile dosya ismi aynı olmak zorundadır. Java büyük küçük harf uyumuna dikkat eder, bu nedenle bu uyuma da dikkat edilmelidir.
Java Program Yapısı • Oluşturduğumuz ornek1.java adlı dosyayı derlemek için bilgisayarımızda jdk(Java Development Kit) kurulu olması gereklidir. JDK java.sun.com sitesinden indirilebilir.
path ayarı • Java komutlarını tüm dizinlerde rahatlıkla kullanabilmek için bir ortam değişkeni ayarlamak gerekir.
Ortam değişkeni nasıl ayarlanır? • C:\Program Files\Java\jdk1.5.0_04\bin • Yukarıdaki yol adresi JDK’nın kurulumu ile oluşan bir dizindir. Bu dizin altında tüm java komutları bulunmaktadır. Bu yol adresini belirtilen path ortamının sonuna noktalı virgül (;) koyarak yerleştirin.
İlk Java Programımızın derlenmesi • Windows komut satırını açın, komut satısında javac yazıp enter tuşuna basın, aşağıdaki sonucu aldıysanız artık derleme işlemini yapabilirsiniz anlamına gelir.
İlk Java Dosyamızın Derlenmesi • Derlemek istediğiniz java dosyasının bulunduğu klasöre geçiniz. Bu yol adresi bizim için C:\> olacaktır. • Derleme için aşağıdaki adımları uygulayın. • javac ornek1.java • Bu komut uygulandıktan sonra ornek1.class uzantılı bir dosya oluşacaktır.
Paket tanımı Ortam bilgileri oluşturucu Metot 1 Metot 2 Gövde Derleme Derleme işlemi Class JVM yorumlayıcı Nesne 1 Nesne 2
Class dosyasının çalıştırılması • Derlediğimiz java dosyasına ait .class uzantılı dosyayı çalıştırmak için, komut satırından aşağıdaki komutu çalıştırın. • java ornek1 • Komut çalıştığında aşağıdaki çıktıyı verecektir. • edutime
Örnek bir class dosyası Paket belirtilmemiş Sınıf tanımlandı public class musteri{ String ad; public musteri(){ ad=“serdar”; } public void musteri_ad_al(){ System.out.println(“adamin adi : ”+ad); } public static void main(String args[]){ musteri adam=new musteri(); adam.musteri_ad_al(); } } Metot tanımlandı Gövde oluşturuldu
İç içe sınıflar Class dis{ String adDis; public dis(String ad){ adDis = ad; } public void adiNedir(){ System.out.println(“Dis sınıf” +adDis); } class Ic(){ String adIc; public Ic(String ad){ adIc = ad; } public void adiNedir(){ Syste.out.println(“Ic sınıf” + adIc); } } public static void main(String args[]){ dis disSinif = new dis(“DisSinif”); disSinif.adiNedir(); dis.Ic icSinif = new dis().new Ic(“IcSinif”); icSinif.adiNedir(); } }
Veri Türleri • Uygulamada, verilerimizin türünü belirtir. • Java her platform tarafından desteklenen çeşitli veri türleri sunar. • Java’daki veri türlerini iki kategoriye ayırıyoruz. • İlkel (Primitive) veri türleri • Birleşik(reference) veri türleri
Veri türleri • Birleşik (Reference) Veri Türleri
Tür Değiştirme • Bir tür veriyi diğer tür bir veriye çevirme işlemidir. • Örneğin tamsayı bir veriyi, ondalık bir sayı türüne çevirmek • float c= 34.89675; int b = (int) c + 10; • Genişleme dönüştürmeleri, değerin büyüklüğü cinsinden veri kaybetmez. • Daraltma dönüştürmeleri, dönüştürülen değerin büyüklüğü cinsinden bilgi kaybeder.
Değişkenler • Uygulamada, verilerimizi tutmak için kullanıdığımız hafızadaki yerlerdir. • Bir değişkenin etki alanı programdaki görülebilirliğini belirler. • Değişken bildirimi üç parçadan oluşur • Değişkenin türü • Değişkenin ismi • Seçeneğe bağlı olarak değişkene atanacak başlangıç değeri • Sözdizimi • Veritürü tanıtıcı [=değer][,tanıtıcı[=değer]]…];
Değişkenler • int a; • int a,b; • int a=0; • int a=0,b; • int a=0, b= 2;
Dizilerin bildirimi • Diziler, aynı veri türündeki birçok elemanı ardışık konumlarda tutar. • Dizin büyüklüğünü bir kere belirledikten sonra bir daha değiştirilemez • Dizinin elemanlarının veri türü ilkel, yada nesne olabilir.
Dizilerin bildirimi • Üç farklı dizi tanımlaması vardır: • veritipitanımlayıcı[ ]; • veritipitanımlayıcı [ ] = new veritipi [büyüklük]; • veritipitanımlayıcı [ ]= {value1,value2,….valueN};
Sınıflarda Metodlar • Java bir sınıfın metotsuz tanımlanmasına izin verir, ancak bu nadiren yapılır • Metot, işlemin bir nesne üzerine nasıl uygulandığı olarak tanımlanır.
Sınıflarda Metodlar • Sözdizimi erisimBelirteniniteliyiciveritipi metotAdı(parametreListesi) { //Metodun gövdesi } • erisimBelirteni: metoda erişimi kısıtlar • niteliyici: meoda özellikler atamamızı sağlar • veritürü: metodun döndürdüğü değerin veri türüdür. Eğer metod veri döndürmüyorsa metodun veri tipi ‘void’ olarak tanımlanır • metodAdı: metodun adı • parametreListesi: Metoda aktarılan parametereler ismini ve veritürünü belitir.
Metodun kullanımına örnek class Temp { static int x = 10; // variable public static void show( ) { // method System.out.println(x); } public static void main(String args[ ]) { Temp t = new Temp( ); // object 1 t.show( ); // method call Temp t1 = new Temp( ); // object 2 t1.x = 20; t1.show( ); } }
Java’da erişim belirtenleri • public: Bir metod herhangi bir sınıftan erişilebilir • protected: Bir metod sadece aynı paketin içinde ise erişilebilir • private: Aynı sınıftaki public metodlar tarafından erişilebilir.
Metot niteleyicileri • static: Metodun nesne olmadan çağrılabileceğini belirtir. • abstract: metodun hiçbir kodunun olmadığını ve alt-sınıfta gerçekleştirilmesi gerektiğini belirtir. • final: metod kalıtımla geçemeyeceğini veya metodun üzerine yazılamayacağını belirtir. • native: Metod gövdesinin Java dışında bir dilde yazıldığını belirtir. • synchronized: İşletim dizilerini uygularken kullanılır. Bir kod bloğuna, aynı anda tek bir işletim dizisinin erişebileceğini belirtir. • volatile:Değişkenin değerinin çalışma zamanı sırasında birçok defa değişceğini ve değerinin yazmaçlarda (register) tutulmadığını belirtmek için değişkenlerle kullanılır.
Metot üzerine yükleme (Overloading) • Üzerine yazılan metodlar • Aynı sınıf içindedirler • Aynı isime sahiptirler • Farklı parametrelere sahiptirler
Metot üzerine yükleme (Overloading) protected void performTask(double maas){ System.out.println(“Maas:” +maas); } protected void performTask(double maas, int bonus){ System.out.println(“Toplam maas:”+maas+bonus); }
Metotların Üzerine yazma(Overriding Methods) • Üzerine yazılan metod • Hem üstsınıfta hemde altsınıfta bulunur • Altsınıfta yeniden tanımlanır
Metotların Üzerine yazma Class SuperClass { //temel sinif olurturma int a; SuperClass() { //olusturucu } SuperClass (int b) { üstüne yükleme oluşturucu a=b; } public void message(){ System.out.println(“ust sinifta”); } } Class SubClass extends SuperClass { //sinifi genisletme int a; SubClass(int a){ //alt-sinif olusturucu this.a=a; } Public void message(){//alt sınıf message()’in üzerine yazma System.out.println(“alt sinifta”); } }
Metotların Üzerine yazma • SuperClass spObj = newSubClass(22); • ‘spObj.message()’ deyimi alt sınıf metodunu çağırır. Burda, ‘spObj’ ye atanan nesnenin türü ancak çalışma zamanında belli olacaktır. Bu, ‘dinamik bağlanma’ olarak bilinir
Sınıf Oluşturucuları • Genellikle, sınıfın üye değişkenlerinin başlangıç değerlerini vermek için kullanılır • Sınıfın bir nesnesi oluşturulduğu zaman çağırılır • Oluşturucu, değer döndürmez, bu nedenle değer döndürme türü yoktur. • Normal methodlar gibi çalışırlar.
Sınıf Oluşturucuları Oluşturucular iki türdedir • Belirgin oluşturucular : Bu oluşturucuları sınıf tanımında kodlayabilirsiniz. • Örtülü oluşturucular: Bir sınıf içinde oluşturucu tanımlamazsanız, JVM varsayılan veya örtülü bir oluşturucu sunar. Bu oluşturucu açık bir şekilde çağrılamaz.
Sınıf Oluşturucuları Class Employee { String name; int age; Employee(String varname,int varage) { this.name= varname; this.age=varage; } public static void main(String args[]) { Employee e = new Employee(“Allen”,30); } }
İşleçler (Operators) • Mantıksal, aritmetik, ilişkisel ve karşılaştırma işlemleri yapmamızı sağlarlar • Java’da altı adet işleç sınıfı vardır • Aritmetik işleçler • Bitsel işleçler • İlikisel işleçler • Mantıksal işleçler • Koşul işleci • Atama işleci
Aritmetik operatörler • + Toplama • - Çıkarma • * Çarpma • / Bölme • % Mod alma • ++ Arttırma • -- Azaltma
Aritmetik operatörler • += toplama ve atama( a+=5) • -= Çıkarma ve atama( a+=5) • *= Çarpma ve atama( a+=5) • /= Bölme ve atama( a+=5) • %= Mod alma ve atama ( a+=5)
Bitsel Operatörler • ~ Bitsel tekli değil (~10=01) • & Bitsel Ve (10&11=10) • | Bitsel Yada (10 | 01=11) • ^ Bitsel Dışlamalı Veya (10^00=10) • >> Sağa kaydırma (>>1010=101) • << Sola Kaydırma (<<1010=10101)
İlişkisel İşleçler • == Eşit mi? • != Eşit değil mi? • < Küçük mü? • > Büyük mü? • <= Küçük yada eşit mi? • >= Büyük Yada eşit mi?
Mantıksal İşleçler • &&Manıtıksal Ve (True && False = False) • ||Mantıksal Or (True || False = True) • ^ Mantıksal Dışlamalı VeSya (True && False = True) • ! Mantıksal Değil ( !True= False)