Kayıtlar

Java SE etiketine sahip yayınlar gösteriliyor

Java SE Ders28 - super Anahtar Kelimesi

Resim
super anahtar kelimesi aşağıdaki amaçlar ile kullanılabilir.

Üst sınıfın nesnesine referans etmek içinÜst sınıfın metodunu çağırmak içinÜst sınıfın constructor (yapılandırıcı) metodunu çağırmak için

Şimdi bunları içeren bir örnek yapalım.

Main.java
package test; publicclass Main { publicstaticvoid main(String[] args) { Puma p = new Puma(); p.arttir(); p.yazdir(); } }
Kedigiller.java
package test; publicclass Kedigiller { double kuyruk = 0; double pence = 0; double kilo = 0; double boy = 0; public Kedigiller() { System.out.println("Kedigil olusturuldu.\n"); } publicvoid kuyrukUzat() { kuyruk += 0.1; } publicvoid penceUzat() { pence += 0.1; } publicvoid kiloArttir() { kilo += 0.1; } publicvoid boyArttir() { boy += 0.1; } publicvoid yazdir(){ System.out.println("BOY\t:"+boy +"\nKILO\t:"+kilo +"\nPENCE\t:"+pence +"\nKUYRUK\t:"+kuyruk+"\n\n"); } }
Puma.java
package t…

Java SE Ders27 - Interface (Arayüz) Kavramı

Resim
Interface (Arayüz) içinde sadece sabit değişkenler ve abstract (soyut) metotlar içeren yapılardır. Sınıflara çok benzemektedir. Aşağıda interface (arayüz) 'in bazı özellikleri ve sınıflardan farkları belirtilmiştir.
Sınıflardan farklı olarak extends anahtar sözcüğü yerine, implements anahtar sözcüğü kullanılır.Sınıflar aynı anda bir sınıftan türetilebilirken, bir sınıf aynı anda bir veya daha fazla interface (arayüzü) 'i implement edebilir.Interface (Arayüz) içinde sadece sabit değişkenler ve abstract (soyut) metotlar bulunur.Interface (Arayüz) içerisindeki tüm abstract (soyut) metotları override etmeyen sınıf soyut sınıf olur.Çünkü abstract (soyut) sınıf içerisinde en az bir abstract (soyut) metot içeren sınıftır.
Şimdi daha önceki konularda yer alan örneği bu konuya uyarlayalım.

Main.java
package test; publicclass Main { publicstaticvoid main(String[] args) { Sekil s1 = new Kare(4); Sekil s2 = new Ucgen(2, 11); System.out.println("Kare alan\t: " + s1.al…

Java SE Ders26 - Abstract (Soyut) Kavramı

Resim
Alt sınıfları için  zorunlu override şartı getiren sınıflara abstract (soyut) sınıf denir.
Abstract (soyut) sınıfın özellikleri aşağıda listelenmiştir.
Abstract (soyut) sınıf en az bir tane abstract (soyut) metot yani sadece signature'ü (imza) bulunan metot bulundurur.Abstract (soyut) sınıfın nesnesi oluşturulamaz.Abstract (soyut) sınıftan türetilen sınıfta  üst sınıfın abstract metodu override edilmelidir.Aksi halde o da abstract sınıf olmuş olur ve nesnesi oluşturulamaz.Abstract (soyut) sınıfta tanımlanmayan abstract (soyut) metot, alt sınıflarda tanımlanması zorunlu kılarak polimorfizme (polymorphism) katkı sağlar.Bir sınıf veya bir metot abstract anahtar kelimesi ile abstract (soyut) yapılır.abstract anahtar kelimesi erişim belirtecinden hemen sonra koyulur.   Polimorfizm (polymorphism) konusunda yapılan örneği bu konuya uyarlayalım.

Main.java
package test; publicclass Main { publicstaticvoid main(String[] args) { Sekil s1 = new Kare(4); Sekil s2 = new Ucgen(2, 11);…

Java SE Ders25 - Polymorphism (Polimorfizm - Çok Biçimlilik) ve Late Binding (Geç Bağlama)

Resim
Polymorphism (Polimorfizm) aynı işi farklı biçimlerle yapmamızı sağlar. Polymorphism (Polimorfizm) işlemi üst sınıftaki bir metodu alt sınıflarda override ederek sağlanır.

   Örnek olarak ;
Sekil üst sınıfı tanımlayalım.Sekil üst sınıfında şeklin alanının hesaplayan alanHesapla metodu oluşturalım.Sekil üst sınıfından Kare ve Ucgen sınıflarını türetelim.Kare ve Ucgen alt sınıflarında alanHesapla metodunu şekillere uygun olarak override edelim.Böylece alanHesapla metotlarının hepsi alanı hesaplayacak.Fakat kendine has yöntemleriyle hesaplayacak. İşte bu çok biçimlilik polymorphism (polimorfizm) örneğidir.Şekil sınıfından oluşturulan nesnenin hangi sınıfın alanHesapla metodunu çağıracağı koşma zamanında belirlenir.Bu olaya da Late Binding (Geç Bağlama) denir.
Main.java
package test; publicclass Main { publicstaticvoid main(String[] args) { Sekil s1=new Sekil(); Sekil s2=new Kare(4); Sekil s3=new Ucgen(2,11); System.out.println("Sekil alan\t: "+s1.alanHesapla());…

Java SE Ders24 - Composition (Kompozisyon)

Resim
Composition (Kompozisyon) bir sınıf içerisinde başka bir sınıfın nesnesini oluşturma durumudur. Composition (Kompozisyon) kalıtıma (inheritance) alternatif olarak kullanılır. Sınıflar kalıtımda olduğu gibi hiyerarşik bir yapıda bulunmaz. Composition birleşim olarak da adlandırılır.

Şimdi örnek programı yapalım.

Main.java
package test; publicclass Main { publicstaticvoid main(String[] args) { EvcilHayvan e=new EvcilHayvan("kedi","rifki",5); Kisi k=new Kisi("enes",25,e); k.yazdir(); } }
Kisi.java
package test; publicclass Kisi { private String ad; privateint yas; private EvcilHayvan e; public Kisi(String ad,int yas){ this.ad=ad; this.yas=yas; } public Kisi(String ad,int yas,EvcilHayvan e){ this.ad=ad; this.yas=yas; this.e=e; } public String getAd() { return ad; } publicvoid setAd(String ad) { this.ad = ad; } publicint getYas() { return yas; } publicvoid setYas(int yas) { this.yas = yas; } publi…

Java SE Ders23 - Aşırı Yüklenmiş (Overloaded) Metotlar

Resim
Bir metot farklı parametre sayısı ve/veya parametre tipi versiyonları ile tekrar tekrar aynı isimle oluşturulabilir. Bu metotlara aşırı yüklenmiş metotlar diğer bir ifadeyle overloaded metotlar denir.

Overloaded metotlarda dikkat edilmesi gereken şey dönüş tipinin farketmemesidir. Yani bir metodun sadece dönüş tipini değiştirerek aynı isim, aynı parametre tipleri ve aynı parametre sayısı ile oluşturulamaz.

Metot overload etmek için aşağıdaki koşullardan en az biri farklı olmalıdır.
parametre sayısıparametre tipi
Şimdi örnek programımızı yapalım.

Program da kullanılan alan metodu :
Bir tane tamsayı argümanı gönderildiğinde karenin alanını,İki tane tamsayı argümanı gönderildiğinde dikdörtgenin alanını,Bir tane ondalık sayı gönderildiğinde de çember alanını hesaplamaktadır. Main.java
publicclass Main { publicstaticvoid main(String[] args) { System.out.println("Kare\t\tkenar :4\talan:"+alan(4)); System.out.println("Dikdortgen\tkenarlar:4ve5\talan:"+alan(4,5…

Java SE Ders22 - Override Metot

Resim
Üst sınıfta tanımlanan bir metodun alt sınıfta işlevini değiştirmeye override etmek denir.Override eden metotlara override metotlar denir.
Alt sınıfta override işlemini yapan metodun hemen üstüne @Override etiketi konur.Alt sınıftaki bir metoda @Override etiketi koyulmasa da üst sınıftaki  metodu override etmiş olur.@Override etiketini koymanın avantajı programın yazılma aşamasında programcıya bir bilgi vermesidir.Bu bilgi şudur. @Override etiketi üstüne koyulan bir metot eğer üst sınıfta tanımlanmamışsa derleyici programcıya üst sınıfta böyle bir metot olmadığına dair bir bilgi verecektir.  Şimdi örnek programa geçelim.

Main.java
package test; publicclass Main { publicstaticvoid main(String[] args) { A a = new A(); B b = new B(); a.yazdir(); b.yazdir(); } }
A.java
package test; publicclass A { publicvoid yazdir(){ System.out.println("A"); } }
B.java
package test; publicclass B extends A { @Override publicvoid yazdir(){ System.out.println(&quo…

Java SE Ders21 - Kalıtım (Inheritance)

Resim
Bir sınıfın başka bir sınıfın özelliklerini taşıması kalıtım ile sağlanır. Kalıtım sayesinde benzer özellikler taşıyan sınıfların her birinde aynı üye elemanların tanımlanmasına gerek kalmaz.Kalıtımın en üst sınıfında tanımlanması yeterlidir.
Kalıtımın en üstünde yer alan sınıfa süper sınıf (super class), altındaki sınıflara ise alt sınıf (subclass) denmektedir.Java'da sınıf hiyerarşisi Object sınıfı ile başlar.Bu sınıf programlama aşamasında açık olarak belirtilmese de tanımlanan tüm sınıfların atasıdır.Java çoklu kalıtıma izin vermez.Bir sınıf iki veya daha fazla sınıfın özelliklerini tek seferde alamaz. Yani elimizde bir A,B,C sınıfları varsa, bu A sınıfı aynı anda B ve C'nin özelliklerini alamaz.Constructor (Yapılandırıcı) metotlar sınıfların kendilerine özeldir kalıtımla alt sınıflara geçmez.Ancak alt sınıfta üst sınıfın constructoru çağrılabilir.Bu super metoduyla yapılır.Bu konuyu daha sonra açılayacağız.Kalıtım extends anahtar kelimesi ile sağlanır. Yani A sınıfı eğe…

Java SE Ders20 - this Anahtar Kelimesi

Resim
Java'da this anahtar kelimesi birçok amaçla kullanılabilir.Bu amaçlar aşağıda listelenmiştir.
O anda kullanılan nesneye referans göstermek için. O anda kullanılan nesnenin özelliklerine erişebilmek için Sınıf içinde başla bir constructor (yapılandırıcı ) metodu çağırabilmek için.
O anda kullanılan nesneye referans gösterimi

… public void islem(String ad,int maas){ …. ata(this); } ….

O anda kullanılan nesnenin özelliklerine erişme 
… public void islem(String ad,int maas){     this.ad=”abc”;     this.maas=123; … } …

Sınıf içinde başka bir constructor (yapılandırıcı) metodu çağırma

public class Personel{ …     public Personel(){        this(“enes”);     }
    public Personel(String k){        ad=k;     } … }



Şimdi örnek programımızı gösterelim.

Main.java
package test; publicclass Main { publicstaticvoid main(String[] args) { Personel p=new Personel(); Personel p2=new Personel("p2"); Personel p3=new Personel(3000); Personel p4=new Personel("p4",3500);…

Java SE Ders19 - Statik (Static) Anahtar Kelimesi

Resim
Bir sınıfta tanımlanan bir değişken sınıfın her nesnesi için özeldir. Fakat bir sınıf içindeki değişkeni statik olarak tanımlamak o sınıftan oluşturulacak tüm nesnelerin o değişkeni ortak olarak kullanılacağını söylemektedir.

Örnek vermek gerekirse, her birinin kendine ait arabası olan 4 kişi olsun. Bu arabaların benzin durumları sadece arabaların kendi sahibini ilgilendirir. Fakat bu 4 kişi tek bir arabayı ortak olarak kullansalardı (statik) o arabanın benzin durumu herkesi ilgilendirecekti.

Statik anahtar kelimesinin özellikleri
Statik olmayan sınıf üyeleri sınıftan bir nesne yaratıldığında bellekte oluşturulur.Statik sınıf üyeleri ise sınıftan nesne üretilmese de bellekte vardır. Statik metotlar static olmayan sınıf üyelerine erişemez. Statik olmayan metotlar statik olan sınıf üyelerine erişebilir. Statik sınıf üyeleri tüm nesneler için ortak olduğu için this anahtar kelimesiyle kullanılamaz.(this anahtar kelimesi daha sonra bahsedilecek.) Şimdi buna uygun bir örnek yapalım.

Java SE Ders18 - Sınıflar (Classes) - II

Resim
Yapılandırıcı (Constructor) Metot Kavramı

  Constructor metot sınıfta bulunan değişkenlere ilk değerini vermek (initialize etme işlemi) için kullanılır.
Bir sınıftan bir nesne oluşturulduğunda o sınıfa ait constructor metodu otomatik olarak çağırılır.Biz sınıf içinde constructor metodu tanımlamasak bile default olarak constructor metodu bulunur.  Tanımlayacağımız constructor ismi sınıf ismiyle birebir aynı olmalıdır.Constructor metotların dönüş tipi bulunmaz. Birden fazla constructor metot parametre tipi veya parametre sayısı farklı olmak şartıyla tanımlanabilir. Şimdi bunun bir örneğini yapalım.

Personel.java
package test; publicclass Personel { private String ad; privateint yas; privateint maas; public Personel(){ this.ad="belirtilmedi"; this.yas=0; this.maas=0; } public Personel(String ad){ this.ad=ad; this.yas=0; this.maas=0; } public Personel(String ad,int yas){ this.ad=ad; this.yas=yas; this.maas=0; } public Personel(String ad,int yas,in…

Java SE Ders17 - Sınıflar (Classes) - I

Resim
İçinde çeşitli java üye elemanları bulundurabilen yapılardır.Örnek bir sınıf tanımlanması aşağıdaki gibidir.

public class Personel{…}


Bir sınıf içerisinde değişkenler tanımlanabilir.

public class Personel{
            private String ad; 
}


Bir sınıf içinde metotlar tanımlanabilir.

public class Personel{
            private String ad;

            public vodi setAd(String t){
                    ad=t;
            }
            public String getAd(){
                   return ad;
            }

}


Sınıflar aslında soyut yapılardır.Sınıfları somutlaştıran, sınıflardan oluşturulan nesnelerdir.Yani sınıflar bir değişken gibi davranmazlar.
Örneğin, String ad="enes"; diyerek değişkene atadığımız değeri sınıflara atayamayız. Sınıflardan bir nesne oluşturulmalıdır ve oluşturulan nesnenin o özelliğine ancak değer atanabilir.
Bir sınıftan nesne oluşturma işlemi aşağıda verilmiştir. Personel pers = new Personel();Burada Personel sınıfın ismi , pers ise Personelden oluşturul…

Java SE Ders16 - Diziler - II

Resim
Bu derstte dizileri ve dizi elemanlarını metotlara nasıl argüman olarak gönderileceğini göstereceğiz.
Argüman olarak dizi alan bir metot örneği aşağıdadır.
public void kareAl(int[] sayilar){..} Bu tür bir kullanımda kareAl metodunun parametresi olan sayilar dizisi üzerinde yapılacak bir değişiklik gönderilen argümanı da etkileyecektir.

 Yani yukarıdaki metoda örneğin,
int [] sayilar1 = {1,2,3,4} dizisini tanımayıp,karelAl(sayilar1) şeklinde argüman olarak gönderilirse,metodun parametresi olan sayilar üzerinde yapılan değişiklikler gönderilen argüman olan sayilar1 dizisini etkiler.Yani çağrılan metodun dışında da yapılan değişikler kendini koruyacaktır.  Fakat tanımlanan metot bir dizi değil de aşağıdaki gibi bir değişken alırsa,
public void kareAl2(int sayi){..} Bu tür bir kullanımda kareAl2 metodunn parametresi olan sayi değişkeni metot bitiminde geçerliliğini yitirerek, bu metoda gönderilen argümanı etkilemeyecektir.

Yani yukarıdaki kareAl2 metoduna örneğin,
int [] sayilar1 = {1,…

Java SE Ders15 - Diziler - I

Resim
Diziler aynı tipte verileri tutan yapılardır.

degiskenTipi []diziIsmi = new degiskenTipi[diziUzunlugu];
Genel bir dizi oluşturma işlemi yukarıdaki gibidir. [] işareti dizinin tek boyutlu olduğunu ifade etmektedir.
Örneğin, 4 tane elemanı olan tek boyutlu bir dizinin tanımlaması aşağıda verilmiştir.

int [] sayilar = new int[4]; sayilar[0]=1; sayilar[1]=2;
sayilar[2]=3; sayilar[3]=4;
veya

int [] sayilar= {1,2,3,4};
şeklinde yapılabilir.Burda dikkat edilmesi gereken husus dizi indisinin (sayilar[0]) 0'dan başlamasıdır

Tek boyutlu diziler olduğu gibi çok boyutlu dizilerde olabilir. int tipinde 2 boyutlu bir dizinin tanımlanması aşağıda verilmiştir.

int [][] sayilar = new int[2][7];
veya

int [][] sayilar = new int[2][]; sayilar[0]=new int [3]; sayilar[1]=new int [2];

Buradaki tanımladaki bir fark da 1.satırın 3, 2.satırın ise 2 kolona sahip olmasıdır.
Ayrıca tek boyutlu dizilerde olduğu gibi çok boyutlu dizilere de başlangıç değeri atanabilir.

int [][] sayilar={ { 1 , 2 , 3 } ,…