Java-da Abstraksiya
-
Abstraksiya (ing. Abstraction) obyekt yönümlü proqramlaşdırmanın (OOP) əsas prinsiplərindən biridir. Bu prinsip, istifadəçiyə yalnız vacib funksionallığı təqdim edərək, arxa plandakı mürəkkəb detalları gizlətməyə imkan verir. Beləliklə, istifadəçi obyektin nə etdiyini bilir, amma necə etdiyini bilməyə ehtiyac yoxdur.
Java-da abstraksiyanın əsasları
Java-da abstraksiya, əsasən iki vasitə ilə həyata keçirilir:
-
Abstrakt siniflər (Abstract Classes):
abstract
açar sözü ilə təyin olunan classlardı. Bu classlarda həm abstrakt (gövdəsiz) metodlar, həm də konkret (gövdəli) metodlar ola bilər. Əgər bir classda ən azı bir abstrakt metod varsa, həmin class mütləqabstract
olaraq təyin olunmalıdır. Abstrakt classlardan birbaşa obyekt yaratmaq mümkün deyil; onları miras alan alt classlar abstrakt metodları təyin etməlidir. -
İnterfeyslər (Interfaces): Yalnız abstrakt metodların (və ya Java 8-dən etibarən default və static metodların) təyin olunduğu strukturlardır. İnterfeyslər 100% abstraksiyanı təmin edir və bir class bir neçə interfeysi implement edə bilər, bu da çoxlu irsiliyi mümkün edir.
Abstraksiya nümunəsi
Aşağıdakı nümunədə
Heyvan
adlı abstrakt class və onu miras alanIt
classı göstərilmişdir:abstract class Heyvan { public abstract void sesCixar(); } class It extends Heyvan { public void sesCixar() { System.out.println("It hürür"); } } public class Test { public static void main(String args[]) { Heyvan h = new It(); h.sesCixar(); // Çıxış: It hürür } }
Bu nümunədə,
Heyvan
classı abstrakt olaraq təyin olunub vəsesCixar()
metodu abstraktdır.It
classı bu metodu öz tələblərinə uyğun təyin edir.Test
classında isəHeyvan
tipində bir istinad dəyişəni iləIt
obyektinə müraciət olunur vəsesCixar()
metodu çağırıldıqda,It
classındakı versiyası icra olunur.Abstrakt classlar və İnterfeyslər arasındakı fərqlər
Xüsusiyyət Abstrakt class İnterfeys Metodlar Həm abstrakt, həm də konkret metodlar ola bilər Yalnız abstrakt metodlar (Java 8-dən etibarən default və static metodlar da ola bilər) İrsilik Tək irsilik dəstəklənir Çoxlu irsilik dəstəklənir Obyekt yaratmaq Birbaşa obyekt yaratmaq mümkün deyil Birbaşa obyekt yaratmaq mümkün deyil Nəticə
Java-da abstraksiya, proqramın mürəkkəbliyini azaltmağa və daha sadə, anlaşılan interfeyslər yaratmağa kömək edir. Bu prinsip, istifadəçiyə yalnız vacib funksionallığı təqdim edərək, arxa plandakı detalları gizlədir. Abstraksiya, proqramın saxlanmasını asanlaşdırır və genişləndirilməsini təmin edir.
-
Bilik paylaşdıqca artan bir sərvətdir