Soyutlama Java

Soyutlama Nedir? Java?

Soyutlama nesne yรถnelimli programlamanฤฑn yalnฤฑzca temel nitelikleri "gรถsteren" ve gereksiz bilgileri "gizleyen" kavramฤฑdฤฑr. Soyutlamanฤฑn temel amacฤฑ gereksiz ayrฤฑntฤฑlarฤฑ kullanฤฑcฤฑlardan gizlemektir. Soyutlama, nesnenin yalnฤฑzca ilgili ayrฤฑntฤฑlarฤฑnฤฑ kullanฤฑcฤฑya gรถstermek iรงin daha bรผyรผk bir havuzdan veri seรงmektir. Programlama karmaลŸฤฑklฤฑฤŸฤฑnฤฑ ve รงabalarฤฑnฤฑ azaltmaya yardฤฑmcฤฑ olur. OOP'lerin en รถnemli kavramlarฤฑndan biridir.

Tฤฑkla okuyun videoya eriลŸilemiyorsa

OOP'larda Soyutlamayฤฑ รถrnekle inceleyelim:

Bir bankacฤฑlฤฑk uygulamasฤฑ oluลŸturmak istediฤŸinizi ve sizden mรผลŸteriniz hakkฤฑnda tรผm bilgileri toplamanฤฑz istendiฤŸini varsayalฤฑm. MรผลŸteri hakkฤฑnda aลŸaฤŸฤฑdaki bilgileri elde etme olasฤฑlฤฑฤŸฤฑnฤฑz vardฤฑr

Soyutlama Java
Soyutlama Java

Ancak, bir bankacฤฑlฤฑk uygulamasฤฑ oluลŸturmak iรงin yukarฤฑdaki bilgilerin hepsi gerekli deฤŸildir. Bu nedenle, yalnฤฑzca sizin iรงin yararlฤฑ olan bilgileri seรงmeniz gerekir. bankacฤฑlฤฑk uygulamasฤฑ ลŸu havuzdan. ฤฐsim, adres, vergi bilgileri vb. veriler, OOP'lerde Soyutlama รถrneฤŸi olan bir bankacฤฑlฤฑk uygulamasฤฑ iรงin anlamlฤฑdฤฑr.

Soyutlama Java

MรผลŸteri bilgilerini daha bรผyรผk bir havuzdan getirdiฤŸimiz/kaldฤฑrdฤฑฤŸฤฑmฤฑz/seรงtiฤŸimiz iรงin sรผreรง, soyutlama olarak adlandฤฑrฤฑlmaktadฤฑr. OOP'ler. Ancak, aynฤฑ bilgi bir kez รงฤฑkarฤฑldฤฑktan sonra รงok รงeลŸitli uygulamalar iรงin kullanฤฑlabilir. ร–rneฤŸin, aynฤฑ verileri hastane baลŸvurusu, iลŸ portalฤฑ baลŸvurusu, bir Hรผkรผmet veritabanฤฑ vb. iรงin รงok az veya hiรง deฤŸiลŸiklik yapmadan kullanabilirsiniz. Dolayฤฑsฤฑyla, bunlar sizin Ana Veriniz olur. Bu, OOP'lerde Soyutlamanฤฑn bir avantajฤฑdฤฑr.

Soyutlama ve Kapsรผlleme Arasฤฑndaki Fark

Soyutlama Encapsulation
Nesneye Yรถnelik Programlamada soyutlama, sorunlarฤฑ tasarฤฑm dรผzeyinde รงรถzer. Kapsรผlleme bunu uygulama dรผzeyinde รงรถzer.
Programlamada soyutlama, en รถnemli bilgileri gรถsterirken istenmeyen ayrฤฑntฤฑlarฤฑ gizlemektir. Kapsรผlleme, kodu ve verileri tek bir birime baฤŸlamak anlamฤฑna gelir.
Veri Soyutlama Java bilgi nesnesinin neleri iรงermesi gerektiฤŸine odaklanmayฤฑ saฤŸlar Encapsulation Gรผvenlik nedeniyle bir nesnenin bir ลŸeyi nasฤฑl yaptฤฑฤŸฤฑna iliลŸkin iรง ayrฤฑntฤฑlarฤฑn veya mekaniฤŸin gizlenmesi anlamฤฑna gelir.

Soyut Sฤฑnฤฑf ve Arayรผz Arasฤฑndaki Fark

Soyut Sฤฑnฤฑf arayรผzey
Soyut bir sฤฑnฤฑf hem soyut hem de soyut olmayan yรถntemlere sahip olabilir. Arayรผz yalnฤฑzca soyut yรถntemlere sahip olabilir.
ร‡oklu kalฤฑtฤฑmฤฑ desteklemez. ร‡oklu kalฤฑtฤฑmฤฑ destekler.
Arayรผzรผn uygulanmasฤฑnฤฑ saฤŸlayabilir. Soyut sฤฑnฤฑfฤฑn uygulanmasฤฑnฤฑ saฤŸlayamaz.
Soyut bir sฤฑnฤฑf korumalฤฑ ve soyut genel yรถntemlere sahip olabilir. Bir arayรผz yalnฤฑzca genel soyut yรถntemlere sahip olabilir.
Soyut bir sฤฑnฤฑf, herhangi bir eriลŸim belirteciyle final, statik veya statik final deฤŸiลŸkenine sahip olabilir. Arayรผz yalnฤฑzca genel bir statik son deฤŸiลŸkene sahip olabilir.

Soyut Sฤฑnฤฑf Nedir?

ร–ZET SINIFI bir tรผr sฤฑnฤฑftฤฑr Java, bir veya daha fazla soyut yรถntem bildiren. Bu sฤฑnฤฑflarฤฑn soyut yรถntemleri olabileceฤŸi gibi somut yรถntemleri de olabilir. Normal bir sฤฑnฤฑfฤฑn soyut yรถntemleri olamaz. Soyut sฤฑnฤฑf, en az bir soyut yรถntem iรงeren bir sฤฑnฤฑftฤฑr. Kavramฤฑ ลŸu ลŸekilde anlayabiliriz: Java'da ลŸekil รถrneฤŸi.

รœรง sฤฑnฤฑf Dikdรถrtgen, Daire ve รœรงgen tarafฤฑndan miras alฤฑnan bir ลžekil sฤฑnฤฑfฤฑndan oluลŸan aลŸaฤŸฤฑdaki sฤฑnฤฑf hiyerarลŸisini dรผลŸรผnรผn. ลžekil sฤฑnฤฑfฤฑ, Dikdรถrtgen, Daire ve รœรงgen รผรง sฤฑnฤฑf tarafฤฑndan paylaลŸฤฑlan ortak niteliklerden ve yรถntemlerden tasarruf etmek iรงin oluลŸturulur. calculateArea(), รผรง alt sฤฑnฤฑf tarafฤฑndan paylaลŸฤฑlan ve ลžekil sฤฑnฤฑfฤฑnda bulunan bu tรผr bir yรถntemdir.

Soyut Sฤฑnฤฑf Java

ลžekil Soyutlama ร–rneฤŸi

ลžimdi yukarฤฑda gรถsterilen sฤฑnฤฑflara yรถnelik nesneler oluลŸturmak iรงin kod yazdฤฑฤŸฤฑnฤฑzฤฑ varsayalฤฑm. Bunlarฤฑn nasฤฑl olduฤŸunu gรถzlemleyelim nesneler pratik bir dรผnyada gรถrรผnecek. Sฤฑnฤฑf dikdรถrtgeninin bir nesnesi, gรผnlรผk yaลŸamda sฤฑklฤฑkla gรถzlemlediฤŸimiz bir ลŸekil olan bir dikdรถrtgen verecektir.

Soyut Sฤฑnฤฑf

Sฤฑnฤฑf รผรงgeninin bir nesnesi, yine gรผndelik hayatta yaygฤฑn olan bir ลŸekil olan bir รผรงgen verecektir.

Soyut Sฤฑnฤฑf

Peki Sฤฑnฤฑf ลžeklindeki bir nesne pratik bir dรผnyada nasฤฑl gรถrรผnรผrdรผ?

Soyut Sฤฑnฤฑf

Shape sฤฑnฤฑfฤฑnฤฑn hizmet verdiฤŸini gรถzlemlerseniz ulaลŸma hedefimiz miras ve polimorfizm. Ancak รถrneklendirilmek iรงin tasarlanmadฤฑ. Bu tรผr sฤฑnฤฑflar etiketlenebilir ร–zet. Soyut bir Java sฤฑnฤฑfฤฑ baลŸlatฤฑlamaz.

Sรถzdizimi:

abstract class Shape{
	// code
}

Shape sฤฑnฤฑfฤฑnฤฑ ร–zet olarak etiketlememeniz ve ardฤฑndan onu baลŸlatmamanฤฑz mรผmkรผndรผr. Ancak bรถyle bir nesnenin kodunuzda hiรงbir faydasฤฑ olmayacak ve olasฤฑ hatalara yer aรงacaktฤฑr. Bu nedenle bu arzu edilen bir durum deฤŸildir.

Soyut Yรถntemler Nelerdir? Java?

ร–ZET Yร–NTEM in Java, yalnฤฑzca yรถntem tanฤฑmฤฑna sahip olan ancak uygulamayฤฑ iรงermeyen bir yรถntemdir. Gรถvdesi olmayan bir yรถnteme Soyut Yรถntem denir. Soyut bir sฤฑnฤฑfta bildirilmelidir. Soyut yรถntem hiรงbir zaman nihai olmayacaktฤฑr รงรผnkรผ soyut sฤฑnฤฑfฤฑn tรผm soyut yรถntemleri uygulamasฤฑ gerekir.

Hepimizin bildiฤŸi gibi dikdรถrtgen, daire ve รผรงgenin alan hesaplama formรผlรผ farklฤฑdฤฑr. HesaplamaArea() yรถnteminin, devralan sฤฑnฤฑflar tarafฤฑndan geรงersiz kฤฑlฤฑnmasฤฑ gerekecektir. Bunu Shape sฤฑnฤฑfฤฑnda tanฤฑmlamanฤฑn bir anlamฤฑ yok, ancak miras alan tรผm sฤฑnฤฑflarฤฑn yรถnteme sahip olduฤŸundan emin olmamฤฑz gerekir.

Bu tรผr yรถntemler etiketlenebilir ร–z.

Sรถzdizimi:

abstract public void calculateArea();

Bir ... iรงin soyut yรถntem, hiรงbir uygulamaya gerek yoktur. Yalnฤฑzca yรถntemin imzasฤฑ tanฤฑmlanฤฑr.

Soyutlama Kodu ร–rneฤŸi

abstract class Shape{  
  abstract void calculateArea();  
}  
 class guru99 extends Shape{  
void calculateArea(){System.out.println("Area of Shape");}  
public static void main(String args[]){  
 Shape obj = new guru99();  
 obj.calculateArea();
}  
}

Soyutlamanฤฑn Avantajlarฤฑ

  • Soyutlama kullanmanฤฑn temel faydasฤฑ Programlama birkaรง ilgili sฤฑnฤฑfฤฑ kardeลŸ olarak gruplamanฤฑza olanak saฤŸlamasฤฑdฤฑr.
  • Nesne Yรถnelimli Programlamada Soyutlama, yazฤฑlฤฑm tasarฤฑm ve uygulama sรผrecinin karmaลŸฤฑklฤฑฤŸฤฑnฤฑ azaltmaya yardฤฑmcฤฑ olur.

Son Anahtar Kelime Java

Son deฤŸiลŸtirici sฤฑnฤฑflara, yรถntemlere ve deฤŸiลŸkenlere uygulanฤฑr. Finalin anlamฤฑ baฤŸlamdan baฤŸlama deฤŸiลŸir, ancak temel fikir aynฤฑdฤฑr.

  • Son sฤฑnฤฑf miras alฤฑnamaz
  • Son deฤŸiลŸken sabit hale gelir ve deฤŸeri deฤŸiลŸtirilemez.
  • Son bir yรถntem geรงersiz kฤฑlฤฑnamaz. Bu gรผvenlik nedeniyle yapฤฑlฤฑr ve optimizasyon iรงin bu yรถntemler kullanฤฑlฤฑr.

ร–rnek E-posta :- ร–zet ve son anahtar kelimeleri รถฤŸrenmek iรงin

) 1 Adฤฑm AลŸaฤŸฤฑdaki kodu bir Editรถre kopyalayฤฑn.

abstract class Shape{
   final int b = 20;
   public void display(){
     System.out.println("This is display method");
   }
   abstract public void calculateArea();
}

public class Rectangle extends Shape{
   public static void main(String args[]){
      Rectangle obj = new Rectangle();
      obj.display();
     //obj.b=200;
  }
  //public void calculateArea(){}
}

) 2 Adฤฑm Kodu kaydedin, derleyin ve รงalฤฑลŸtฤฑrฤฑn.

) 3 Adฤฑm Hata =? Soyut yรถntem Rectangle sฤฑnฤฑfฤฑnda uygulanmaz. Sorunu dรผzeltmek iรงin 15 numaralฤฑ yorum satฤฑrฤฑndan vazgeรงin.

) 4 Adฤฑm 13 numaralฤฑ satฤฑrฤฑn aรงฤฑklamasฤฑnฤฑ kaldฤฑrฤฑn. Kodu kaydedin ve derleyin.

) 5 Adฤฑm Hata = ? b deฤŸiลŸkeni sondur

Soyut Yรถntemler ve Soyut Sฤฑnฤฑf ne zaman kullanฤฑlฤฑr?

Soyut yรถntemler รงoฤŸunlukla iki veya daha fazla alt sฤฑnฤฑfฤฑn aynฤฑ ลŸeyi farklฤฑ uygulamalar aracฤฑlฤฑฤŸฤฑyla farklฤฑ ลŸekillerde yaptฤฑฤŸฤฑ durumlarda bildirilir. Aynฤฑ zamanda aynฤฑ Soyut sฤฑnฤฑfฤฑnฤฑ geniลŸletir ve soyut yรถntemlerin farklฤฑ uygulamalarฤฑnฤฑ sunar.

Soyut sฤฑnฤฑflar, genel davranฤฑลŸ tรผrlerini ve nesne yรถnelimli programlama sฤฑnฤฑf hiyerarลŸisini tanฤฑmlamaya yardฤฑmcฤฑ olur. Ayrฤฑca, soyut sฤฑnฤฑfฤฑn uygulama ayrฤฑntฤฑlarฤฑnฤฑ sunmak iรงin alt sฤฑnฤฑflarฤฑ da tanฤฑmlar.

ร–zet:

  • Programlamada Soyutlama, bir amaรง iรงin รถnemli veri kรผmelerinin seรงilmesi sรผrecidir. nesne yazฤฑlฤฑmฤฑnฤฑzda ve รถnemsiz olanlarฤฑ dฤฑลŸarฤฑda bฤฑrakarak.
  • Nesnenizi Veri Soyutlamayฤฑ kullanarak modelledikten sonra JavaAynฤฑ veri seti farklฤฑ uygulamalarda kullanฤฑlabilir.

Bu yazฤฑyฤฑ ลŸu ลŸekilde รถzetleyin: