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

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.
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.
ล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.
Sฤฑnฤฑf รผรงgeninin bir nesnesi, yine gรผndelik hayatta yaygฤฑn olan bir ลekil olan bir รผรงgen verecektir.
Peki Sฤฑnฤฑf ลeklindeki bir nesne pratik bir dรผnyada nasฤฑl gรถrรผnรผrdรผ?
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.




