İçerikler :

Abstract Abstract Class Abstract Method Anonymous Class Base Class (Super Class) Bir Dilde Multiple Inheritance Olması Gereksi.. Effectively Final Extends Implements Inner Class instanceof Java'da Basit Bir Anonymous Class Örneği Java'da Basit Bir Constructor (Kurucu) Örneği Java'da Basit Bir Inner Class Örneği Java'da Encapsulation Yöntemleri Java'da Örnek Yaratımı Java Basit Bir Polymorphism Örneği Local Class - Yerel Sınıf Local Sınıflarda Üst Sınıf Değişkenlerine Eri.. Multiple Inheritance (Çoklu Kalıtım) Kafa Kar.. Nested Class - Inner Class - Anonymous Class.. new operatörü Object (Nesne) POJO - Plain Old Java Object private protected public super this Top Level Class

Bu Sayfayı Paylaş:

Kavram

Abstract

Tanım: Somut bir işlevi olmayan, extend veya implement edilmesi beklenen nesne veya method'un özelliği.

Kavram

Abstract Method

Tanım: Bir class'da declare edilmiş ancak implementation'u subclass'lara bırakılmış method.

Kavram

Abstract Class

Tanım: Bir veya daha fazla class'ın ortak özelliklerini içermesi için yazılmış, tek başına kullanılmayan class.

Kavram

Anonymous Class

Tanım: Adı verilmeksizin yaratılmış inner class.

Kavram

Base Class (Super Class)

Tanım: Bir class'ın extend ettiği (türediği), property (özellik) ve method'larını inherit ettiği (miras aldığı) class

Kavram

Extends

Tanım: Bir class'ın başka bir class'ı extend ettiğini (türettiği, özel bir halini oluşturduğunu) belirten ifade. Örneğin A extends B şeklindeki bir ifade A class'ının B class'ını extend ettiğini (B'den türediğini) gösterir.

Kavram

Implements

Tanım: Java dilinde bir class'ın bir interface'deki bütün method'ları implement edeceğini (sağlayacağını)i belirten ifade.

Kavram

Inner Class

Tanım: Bir class'ın içerisinde tanımlanan class

Kavram

instanceof

Tanım: Bir nesnenin belli bir class'tan yaratılıp yaratılmadığını kontrol eden ve sonuç olarak boolean bir değer döndüren operatör

Kavram

new operatörü

Tanım: Bir class'dan bir nesne (instance) yaratmaya yarayan operatör.

Kavram

Object (Nesne)

Tanım: İçerisinde belli özellikler (property'ler) ve işlevler (method'lar) bulunan ve bir class'tan yaratılan yapı

Kavram

private

Tanım: Sadece o class içerisindeki method'ların erişebileceği property veya method

Kavram

protected

Tanım: Sadece bir class'ı extend eden class'ların erişebileceği property veya method yapmak için kullanılan ifade

Kavram

public

Tanım: Bir class'ta dışarıdan herkesin erişebileceği property veya method'ları tanımlama içim kullanılan ifade

Kavram

super

Tanım: Bir class'ın extend ettiği class'taki property, method ve constructor'lara erişirken kullanılan keyword

Kavram

this

Tanım: Bir class içerisinde, o sırada kullanılan nesneyi (instace'ı) belirten ifade.

Kavram

Top Level Class

Tanım: Bazı inner class'ları içerisinde bulunduran, ana class.

Veri

Java'da Encapsulation Yöntemleri

Java'da bir class içindeki property'leri (özellikleri)  veya method'ları encapsülation yapma yöntemleri aşağıdaki gibidir : 

  • Private : Bir property veya method private keyword'ü ile tanımlandığında sadece class içerisinden erişilebilir. Başka bir class üzerinden erişilemez. 
  • Protected :  Bir property veya method protected keyword'ü ile tanımlandığında class içerisinden ve bu class'ı extend eden class'lar üzerinden erişilebilir. 
  • Friendly :  Bir class, property veya method için herhangi bir encapsulation keyword'ü tanımlanmaz ise friendly olur. Friendly olan  class, property veya method'lara sadece aynı paket içerisinde olan class'lar erişebilir. 
  • Public :  Bir class, property veya method public keyword'ü ile tanımlandığında her yerden erişilebilir. 

 


Veri

Java'da Örnek Yaratımı

Bu yazıda Java da örnek nasıl yaratılır anlatılacaktır.
Java'da bir sınıftan (class) instance (örnek) new operatörü ile yaratılır. Bir sınıfın boş bir kurucusu (constructor) varsa o sınıftan bir nesne aşağıdaki gibi yaratılır:
Test a = new Test();
Yukarıda T sınıfının a örneği yaratılmıştır. Aynı sınıftan istenildiği kadar instance yaratılabilir.
Test b = new Test();
Test c = new Test();
Test d = new Test();
Yukarıda aynı class'tan birden çok instance yaratılmıştır. Eğer class'ın parametre alan bir kurucusu (constructor) varsa o kurucu kullanılabilir.
Test e=new Test(3);

Yukarıda Test sınıfından bir integer parametresi alan kurucusu (constructor) kullanılarak nesne yaratılmıştır.

Örnek

Java'da Basit Bir Anonymous Class Örneği

Aşağıda basit bir anonymous class örneği gözükmektedir:
button.addActionListener(
	new ActionListener(){
		public void actionPerformed(ActionEvent e){
			System.out.println("Action!")
		}
	}
)

button nesnesinin addActionListener method'u parametre olarak ActionListener istemektedir. Yukarıdaki örnekte ActionListener interface'ni implement etmiş bir anonymous class yaratılmıştır.

Örnek

Java'da Basit Bir Constructor (Kurucu) Örneği

Aşağıda Point class'ının iki int tipinde değişken alan bir kurucusu vardır :
public class Point{
        private int x=0;
        private int y=0;        
      public Point(int xx,int yy){
                x=xx;
                y=yy;
        }
}

Örnek

Java'da Basit Bir Inner Class Örneği

Java'da basit bir inner class örneği aşağıdaki gibidir :
public class A{
	privat int i=0;
	public class B{
		private a=5;
	}	
}

B class'ı inner class'tır ve A class'ı içinde tanımlanmıştır.

Örnek

Java Basit Bir Polymorphism Örneği

Aşağıda basit bir polymorphism örneği gözükmektedir :
public interface Instrument{
        public void setPower(boolean power);
}
public class TV implements Instrument{
        // ...
        public void setPower(boolean on){
                if(on){
                        chargeCondensators();
                        initTube();
                }else{
                        cutPower();
                }
        }
        // ..   
}
public class HairDryer implements Instrument{
        // ...
        public void setPower(boolean on){
                if(on){
                        startResistence();
                        blowAir();
                }else{
                        cutPower();
                }
        }
        // ..
}
TV ile HairDryer class'larında setPower method aynı yapıda olmasına rağmen çağrıldığı durumda farklı bir şekilde çalışmakta ve farklı bir işlev göremektedir. Bu nedenle setPower bir polymorphism örneğidir. Aşağıda nasıl kullanılacağı gösterilmiştir.
booelan on=true;
booelan off=false;
TV tv=new TV();
tv.setPower(on);
HairDryer dryer=new HairDrayer();
dryer.setPower(on);
tv.setPower(off);
dryer.setPower(off);

Sav

Bir Dilde Multiple Inheritance Olması Gereksizdir

Bir dilde Multiple inheritance (Çoklu Kalıtım) olması gereksiz bir özelliktir

Sav

Multiple Inheritance (Çoklu Kalıtım) Kafa Karışıklığı Yaratmaktadır

Multiple inheritance (çoklu kalıtım) kafa karıştıran ve karmaşık bir özelliktir.

Kavram

POJO - Plain Old Java Object

Tanım: Bir class'ın özel bir özelliği olmayan sıradan bir class olduğunu belirtmek için kullanılan ifade. Class içinde herhangi bir yazım stili , şablon vs.. kullanılmadığını belirtir

Veri

Nested Class - Inner Class - Anonymous Class - Local Class

Nested Class , Inner Class , Anonymous Class , Local Class kavramlarının ilişkisi aşağıdaki gibi gösterilebilir:
  • Nested Class : Başka bir sınıfın içinde tanımlanan sınıf
    • Static Nested Class : Nested Class. Tek farkı bir class içinde yazılması ve UstClass.AltClass şeklinde erişilmesi
    • Static Olmayan Nested Class - Inner Class : Üst sınıfın bir üyesidir ve üst sınıf dışında kullanımı yoktur
      • Inner Class - Sınıf Üyesi Olan Inner Class
        • Anonymous Class : Adı verilmeyen Inner Class
        • Local Class : Bir kod bloğu içinde tanımlanan Inner Class

Kavram

Local Class - Yerel Sınıf

Tanım: Bir sınıfın üyesi olmadan bir blok içinde (metot, for, while vb..) tanımlanan sınıf

Kavram

Effectively Final

Tanım: Java 8 ile birlikte, bir local , inner veya anonymous sınıftan erişilen üst sınıf değişkeninin final olarak belirtilmemesine rağmen final olarak kabul edilmesini sağlayan özellik. Java 8 öncesi , local , inner veya anonymous bir sınıftan final olmayan bir üst sınıf değişkenine erişilememektedir.

Veri

Local Sınıflarda Üst Sınıf Değişkenlerine Erişim

Java 8 öncesi, local , inner veya anonymous bir sınıftan, üst sınıfın değişkenine erişmek için o değişkenin final olarak belirtilmesi gerekir. Aksi takdirde Cannot refer to a non-final variable XXX inside an inner class defined in a different method gibi bir hata alınır. Java 8 ile artık üst değişken final yapılmasına gerek kalmamıştır. Local sınıftan erişilen sınıf otomatik olarak Effectively Final olarak kabul edilir. Eğer üst sınıf, local sınıf içinde değiştirilmeye çalışılırsa aşağıdaki gibi bir hata oluşur : local variables referenced from an inner class must be final or effectively final



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir