Դաս 26։ Java –Interfaces

0

Ինտերֆեյսը Java-ում հղումային տեսակ է: Այն նման է դասին: Այն աբստրակտ մեթոդների հավաքածու է: Դասը ռալիզացնում է ինտերֆեյսը, դրանով իսկ ժառանգելով ինտերֆեյսի աբստարկտ մեթոդները:

Աբստրակտ մեթոդների հետ մեկտեղ ինտերֆեյսը կարող է պարունակել նաև կոնստանտներ, կանխադրված մեթոդներ, ստատիկ մեթոդներ և  nested types: Մեթոդների մարմինները գոյություն ունեն միայն կանխադրված մեթոդների և ստատիկ մեթոդների համար:

Ինտերֆեյսը գրելը նման է դասը գրելուն: Սակայն դասը նկարագրում է օբյեկտի հատկանիշներն ու վարքագիծը: Իսկ ինտերֆեյսը պարունակում է վարքագծեր, որոնք իրականացնում է դասը:

Եթե ինտերֆեյսի իրականացնող դասը աբստրակտ չէ, ապա ինտերֆեյսի բոլոր մեթոդները պետք է սահմանվեն դասում։

 

Ինտերֆեյսը նման է դասի հետևյալ պարագաներում՝

  • Ինտերֆեյսը կարող է պարունակել ցանկացած քանակի մեթոդ:
  • Ինտերֆեյսը գրված է ֆայլում .java հավելվածով, ֆայլի անունը համապատասխանում է ինտերֆեյսի անունին:
  • Ինտերֆեյսի բայթ կոդը հայտնվում է .class ֆայլում:
  • Ինտերֆեյսները հայտնվում են փաթեթներում, և դրանց համապատասխան բայթային ֆայլը պետք է լինի կատալոգների կառուցվածքում, որը համապատասխանում է փաթեթի անունին:

 

Այնուամենայնիվ, ինտերֆեյսը տարբերվում է դասից մի քանի հարցերում։ Ահա դրանք`

  • Դուք չեք կարող ստեղծել ինտերֆեյս:
  • Ինտերֆեյսը չի պարունակում որևէ կոնստրուկտոր:
  • Ինտերֆեյսի բոլոր մեթոդները աբստրակտ են:
  • Ինտերֆեյսը չի կարող պարունակել դաշտերի օրինակներ: Միակ դաշտերը, որոնք կարող են հայտնվել ինտերֆեյսում, պետք է հայտարարվեն ինչպես ստատիկ, այնպես էլ վերջնական՝final:
  • Ինտերֆեյսը չի ընդլայնվում դասի կողմից. այն իրականացվում է դասի կողմից:
  • Ինտերֆեյսը կարող է ընդլայնել մի քանի ինտերֆեյսներ:

 

Ինտերֆեյսի սահմանում/Declaring Interfaces

interface բանալի բառը օգտագործվում է ինտերֆեյսը հայտարարելու համար: Ահա մի պարզ օրինակ –

Օրինակ

/* File name : NameOfInterface.java */

import java.lang.*;

// Any number of import statements

 

public interface NameOfInterface {

   // Any number of final, static fields

   // Any number of abstract method declarations\

}

Ինտերֆեյսները ունեն հետևյալ հատկությունները `

  • Ինտերֆեյսը աբստրակտ է: Անհրաժեշտ չէ օգտագործել abstract բանալի բառը ինտերֆեյսը հայտարարելու համար:
  • Ինտերֆեյսում յուրաքանչյուր մեթոդը նույնպես աբստրակտ է, այնպես որ abstract բանալի բառի անհրաժեշտությունը չկա։
  • Ինտերֆեյսի մեթոդները հրապարակային են՝ public:

 

Օրինակ՝

/* File name : Animal.java */

interface Animal {  

public void eat();  

public void travel();

}

 

Ինտերֆեյսների իրականացում/ Implementing Interfaces

Երբ դասը իրականացնում է ինտերֆեյսը, պատկերացրեք, որ այն պայմանագիր է ստորագրում, համաձայնեցնելով իրականացնել ինտերֆեյսի վարքագիծը: Եթե դասը չի կատարում ինտերֆեյսի բոլոր վարքագծերը, դասը պետք է հայտարարի իրեն որպես աբստրակտ:

Դասը օգտագործում է implements բանալի բառի ինտերֆեյսի իրականացման համար: implements բանալի բառերը հայտնվում են դասի դեկլարացիայում։

Օրինակ՝

/* File name : MammalInt.java */

public class MammalInt implements Animal {  

  public void eat() {   

   System.out.println(“Mammal eats”);  

}   

public void travel() { 

     System.out.println(“Mammal travels”); 

  }    

public int noOfLegs() {    

  return 0;  

}   

public static void main(String args[]) { 

     MammalInt m = new MammalInt();   

   m.eat();    

  m.travel();  

}

}

Արդյունքը՝

Mammal eats

Mammal travels

 

Երբ ինտերֆեյսով սահմանված մեթոդները անտեսվում են, կան մի քանի կանոններ, որոնց պետք է հետևել,

  • Ստուգված բացառությունները չպետք է հայտարարվի ինտերֆեյսի մեթոդով կամ ինտերֆեյսի մեթոդով հայտարարված ենթադասների կողմից հայտարարված այլ մեթոդներով:
  • Ինտերֆեյսի մեթոդի ստորագրությունը և նույն վերադարձի տեսակը կամ ենթատիպը պետք է պահպանվի։
  • (implementation class) Իրականացման դասը ինքնին կարող է աբստրակտ լինել, և եթե դա այդպես է, ինտերֆեյսի մեթոդները չպետք է կիրառվեն:

 

Ինտերֆեյսի իրականացման(ռեալիզացիայի) ժամանակ, կան մի քանի կանոններ-

  • Մի դաս կարող է իրականացնել մեկից ավելի ինտերֆեյս:
  • Դասը կարող է ընդլայնել միայն մեկ դաս, բայց իրականացնել բազմաթիվ ինտերֆեյսներ։
  • Ինտերֆեյսը կարող է ընդլայնել մեկ այլ ինտերֆեյս, նույն ձևով, ինչ դասը կարող է ընդլայնել մեկ այլ դաս: 

    Հարգելի ընթերցող, խնդրում ենք չմոռանալ like տալ մեր ֆեյսբուքյան էջին, քանի որ նորությունների մեծ մասը առաջինը տեղադրվում է հենց այնտեղ։ Ինչպես նաև հետևեք մեզ այլ սոցիալական ցանցերում և, իհարկե, գրանցվեք մեր բլոգում։

Share.