Java-da abstraksiya


JavaBaxılıb 41

Abstraksiya nədir

Java-da olan abstraksiya OOP anlayışlar, digər detalları gizlədərək istifadəçiyə yalnız tələb olunan məlumatları göstərmək prosesidir. Məsələn, bir mobil telefonu düşünün, yalnız zəng düyməsinə basaraq lazımi nömrəni yığacağını bilirik. Ancaq bir zəngin necə işlədiyini faktiki olaraq bilmirik. Bunun səbəbi daxili mexanizmin bizə görünməməsidir. Bu, mücərrədliyin əsl nümunəsidir. Eynilə, mücərrədləşdirmə də obyekt yönümlü proqramlaşdırmada eyni şəkildə işləyir. Bu təlimatda biz Java mücərrəd dərsləri və metodlarından istifadə edərək mücərrədliyə necə nail olacağını öyrənəcəkdir.

Java Abstraktsiyasına nail olma yolları

Javada abstraksiyanı 2 yoldan aşağıda əldə edə bilərik.

Java-da abstraksiyaPin

İnterfeysdən istifadə edərək abstraksiya əldə etmək barədə daha çox məlumat əldə etmək üçün Java təlimatında İnterfeysə müraciət edə bilərsiniz.

Abstraksiya istifadəsi

  • Tətbiq detallarını gizlədərək təhlükəsizlik təmin edir.
  • Üst sinifin irsi mücərrəd metodunun funksionallığını həyata keçirməsi üçün alt sinif üçün rahatlıq təmin edir.

Java mücərrəd sinfi və metodları haqqında ətraflı müzakirə edək.

Java-da mücərrəd sinif

İlə bir sinif elan etdiyimiz zaman mücərrəd açar söz, buna mücərrəd bir sinif deyirik. mücərrəd bir sinif və metodla birlikdə istifadə edə biləcəyimiz, daxilolmayan bir dəyişdirici açar sözdür. Mücərrəd sinif, yerinə yetirilməmiş metodları ehtiva edən bir super sinif olan xüsusi bir sinifdir. Buna görə ana mücərrəd sinfi miras alan alt sinif bütün mücərrəd metodları tətbiq etməlidir.

Abstrakt sinifin xüsusiyyətləri

  • Sınıfın sinif tərifində mücərrəd bir açar söz olmalıdır
  • Abstrakt sinif mücərrəd metodlara və mücərrəd olmayan metodlara sahib ola bilər.
  • Bir sinifdə mücərrəd bir metod varsa, o zaman mücərrəd bir sinif olaraq təyin edilməlidir.
  • Ya konstruktorlar varsayılan və ya parametrləşdirə bilər.
  • Mücərrəd sinif üçün obyekt yaradılmasına icazə vermir.
  • Son və statik metodları da təyin etməyə imkan verir
  • Abstrakt sinfə yalnız vasitəsilə daxil ola bilərik miras istifadə edərək uzanır açar söz.
  • Mücərrəd sinfi uzadan sinif bütün mücərrəd metodları tətbiq etməlidir.
  • Abstrakt bir sinif dəyişənləri də əhatə edə bilər.

Mücərrəd sinif sintaksis

abstract class class_name {
       abstract return_type methodname(); //abstract method
       return_type methodname() { //non-abstract method
       }
}

Abstrakt sinif nümunəsi

Aşağıda mücərrəd bir sinif adlı sadə bir nümunə verilmişdir Meyvə ki, var zövq mücərrəd bir metod kimi. Fərqli meyvələrin fərqli zövqləri olduğundan, mücərrəd sinfi genişləndirən sinif öz zövq tətbiqinə sahib ola bilər. Abstrakt sinif metodunu tətbiq etmək üçün sinif uzanır sinif tərifində açar söz.

abstract class Fruits
{
  abstract void taste();
}

class Apple extends Fruits {

  @Override
  void taste() {
    System.out.println("Sweet taste");
    
  }
  
}
public class AbstractDemo {

  public static void main(String[] args) {
    Apple a = new Apple();
    a.taste();

  }

}
Sweet taste

Başqa bir sinfin eyni mücərrəd sinfi genişləndirdiyi başqa bir nümunəyə baxaq. Budur başqa bir sinifimiz var Ananas uzanır Meyvələr Onun tətbiqinin metoddakı metoddan fərqli olduğunu görə bilərsiniz alma sinif. Beləliklə, indi soyutlamanın əsas istifadəsini başa düşə bilərsiniz. Ana mücərrəd sinfi miras alan hər bir alt sinif mücərrəd metodu həyata keçirmək üçün öz rahatlığına malikdir.

abstract class Fruits
{
  abstract void taste();
}

class Apple extends Fruits {

  @Override
  void taste() {
    System.out.println("Sweet taste");
    
  }
  
}

class Pineapple extends Fruits {

  @Override
  void taste() {
    System.out.println("Sour taste");
    
  }
  
}
public class AbstractDemo {

  public static void main(String[] args) {
    Apple a = new Apple();
    Pineapple p = new Pineapple();
    a.taste();
    p.taste();
  }

}
Sweet taste
Sour taste

Java-da Abstrakt Metodlar

Açar sözdən istifadə etdikdə mücərrəd bir metod elan edərkən buna mücərrəd metod deyirik. Abstrakt metodların yalnız bir funksiya bəyannaməsi var və metodun tətbiqi yoxdur. Bu, yalnız boş bir bədən ehtiva etdiyi və metodun içərisində heç bir kod olmadığı deməkdir. Mücərrəd sinfi miras alan sinif mücərrəd metodu həyata keçirir.

Abstrakt metodun xüsusiyyətləri

  • Abstrakt metodlardan yalnız mücərrəd sinif daxilində istifadə edə bilərik.
  • Abstrakt metodun metod gövdəsində heç bir kodu yoxdur.
  • Açar sözdən istifadə etməliyik mücərrəd mücərrəd bir metod elan etmək.

Abstrakt metodun sintaksisi

abstract returntype methodname();

Abstrakt metodun nümunəsi

Yuxarıdakı abstrakt sinif nümunəsində gördüyümüz eyni nümunəni nəzərdən keçirək. Burada dad heç bir tətbiqi olmayan mücərrəd bir üsuldur.

abstract class Fruits
{
  abstract void taste(); //abstract method
}

class Apple extends Fruits {

  @Override
  void taste() {
    System.out.println("Sweet taste");
    
  }
  
}

public class AbstractDemo {

  public static void main(String[] args) {
    Apple a = new Apple();
    a.taste();
  }

}

Abstrakt və mücərrəd olmayan metodlarla mücərrəd sinif

Daha əvvəl müzakirə etdiyimiz kimi, mücərrəd bir sinif həm mücərrəd, həm də mücərrəd olmayan metodlara sahib ola bilər. Bu, superklassın hansı üsula sahib olduğuna və alt sinifin hansı metodları tətbiq edə biləcəyinə qərar vermək üçün rahatlıq təmin edir.

Aşağıdakı nümunədə, zövq bir mücərrəd metod, və GetFruitName birdir mücərrəd olmayan metod. Beləliklə, alt sinif bu metoddan birbaşa mirasın bir hissəsi kimi istifadə edə bilər.

abstract class Fruits
{
  String fruitname;
  //abstract method
  abstract void taste();
  
  //non-abstract method
  public void getFruitName(String fruit ) {
    this.fruitname = fruit;
  }
}

class Apple extends Fruits {

  @Override
  void taste() {
    System.out.println("Sweet taste");
    
  }
  
}

public class AbstractDemo {

  public static void main(String[] args) {
    Apple a = new Apple();
    a.getFruitName("Apple");
    System.out.println("Fruit name: " + a.fruitname);
    a.taste();
  
  }

}
Fruit name: Apple
Sweet taste

Abstrakt sinif konstruktorları

Abstrakt sinif həm də konstruktorları dəstəkləyir. Parametrləşdirilmiş və ya standart quruculardan istifadə edə bilərik. JVM, mirasda gördüyümüz kimi dolayı olaraq standart qurucuları çağırır.

Aşağıdakı nümunədə mücərrəd sinifdə parametrləşdirilmiş konstruktordan istifadə etdik. Bu konstruktoru alt sinif konstruktorundan super söz. Obyekt yaradılması zamanı alt sinif konstruktoru çağrıldıqda, o, Meyvələr konstruktorunu çağırır və əvvəlcə yerinə yetirir. Bundan sonra Apple konstruktorundakı qalan ifadələri icra edir.

abstract class Fruits
{
  String fruitname;
  String color;
  
  Fruits(String color) {
    this.color = color;
    System.out.println("Fruits constructor");
  }
  //abstract method
  abstract void taste();
  
  //non-abstract method
  public void getFruitName(String fruit ) {
    this.fruitname = fruit;
  }
}

class Apple extends Fruits {

  Apple(String color) {
    super(color);
    System.out.println("Apple constructor");
  }

  @Override
  void taste() {
    System.out.println("Sweet taste");
    
  }
  
}

public class AbstractDemo {

  public static void main(String[] args) {
    Apple a = new Apple("red");
    a.getFruitName("Apple");
    System.out.println("Fruit name: " + a.fruitname);
    System.out.println("Fruit color: " + a.color);
    a.taste();
  
  }

}
Fruits constructor
Apple constructor
Fruit name: Apple
Fruit color: red
Sweet taste

Abstrakt sinif və interfeys arasındakı fərq

İndi mücərrəd sinif haqqında başa düşdük, mücərrəd sinif və interfeys arasındakı fərqi görək.

Abstrakt sinifInterface
Abstrakt sinif həm mücərrəd, həm də mücərrəd olmayan metodlara sahib ola bilərİnterfeysdə yalnız mücərrəd metodlar ola bilər. Java 8-dən, standart metodları dəstəkləyir
Çoxlu mirası dəstəkləmirÇoxlu mirası dəstəkləyir
Abstrakt açar sözdən istifadə edirİnterfeys açar sözündən istifadə edir
Abstrakt sinfi miras almaq üçün açar sözdən istifadə edirİnterfeysi tətbiq etmək üçün açar sözdən istifadə edir
Başqa bir Java sinfini genişləndirə bilər və eyni zamanda interfeys tətbiq edə bilərYalnız başqa bir interfeysi genişləndirə bilər
Üzvlər xüsusi, qorunan və s. Kimi giriş dəyişdiricilərinə sahib ola bilərlərÜzvlər yalnız ümumi ola bilər
Statik, qeyri-statik, son və ya son olmayan dəyişənlərə sahib ola bilər.Yalnız statik və son dəyişənlərə sahib ola bilər

 

arayış

Şərh yaz

Translate »
1