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ı 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) Gövde public static void main(String args[])
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 : İşleçler 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?
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.
Derleme Paket tanımı Ortam bilgileri oluşturucu Metot 1 Metot 2 Gövde 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ş 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(); Sınıf tanımlandı 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; 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 Veri Türü Bit cinsinden Büyüklüğü Kapsam byte 8 -128 to 127 char 16 ‘\u0000’ boolean 1 True False Short -32768 to 32767 int 32 -2,147,483,648 to 2,147,483,647 long 64 -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 float -3.40292347E+38 to +3.40292347E+38 double -1.79769313486231570E308
Veri türleri Birleşik (Reference) Veri Türleri Veri türü Açıklama Array Aynı türdeki birçok elemandan oluşan yığın Class Sınıflar ve metodlar yığını. Interface Java’da çoklu kalıtımı gerçekleştirmek için oluşturulan soyut sınıf.
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: veritipi tanımlayıcı[ ]; veritipi tanımlayıcı [ ] = new veritipi [büyüklük]; veritipi tanı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 erisimBelirteni niteliyici veritipi 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 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)
Atama operatörü = atama Değer birden fazla değişkene atanabilir Örnek a=b=c=0;
İşleçlerin önem sırası Öncelik İşleç 1 -,++,-- 2 *,/,+,-,<<,>> 3 >,<,>=,<=,==,!= 4 &&,||,&,|,^ 5 =,*=,/=,+=,-= İşleçlerin önemi parantez kullanımında değişebilir
Çıkış karakterleri ile formatlama Kaçış işleçleri tanım \n Bir satır alta iner \r Satır başına gelir \t Kursorun bulunduğu yerden 1 tab ileri gider \\ Ters slash yerleştirir \’ Tek tırnak yerleştirir \” Çift tırnak yerleştirir