Sąsaja (programavimas): Skirtumas tarp puslapio versijų

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Ištrintas turinys Pridėtas turinys
Papildyta
Sauls (aptarimas | indėlis)
Nėra keitimo santraukos
Eilutė 1: Eilutė 1:
'''Interfeisas''' - abstraktus [[Objektas (programavimas)|objekto]] aprašas, nusakantis, kokius [[metodas (programavimas)|metodus]] šis objektas privalo turėti. Tą patį interfeisą paprastai išpildo keletas programoje naudojamų [[klasė|klasių]]. Ta pati klasė neretai išpildo keletą interfeisų. Galima interfeisų hierarcija, paveldint kai kuriuos būtinus išpildyti metodus iš vienos ar kelių tėvinių interfeisų.
'''Interfeisas''' - abstraktus [[Objektas (programavimas)|objekto]] [[Klasė (programavimas)| klasės]] aprašas, nusakantis, kokius [[metodas (programavimas)|metodus]] ši klasė privalo turėti. Tą patį interfeisą gali išpildyti keletas programoje naudojamų [[klasė|klasių]]. Ta pati klasė neretai išpildo keletą interfeisų. Galima interfeisų hierarcija, paveldint būtinus išpildyti metodus iš vieno ar kelių tėvinių interfeisų.


Interfeisus palaiko daugelis modernių programavimo kalbų ([[Java_(kalba)|Java]], C#). Yra
Interfeisus palaiko daugelis modernių programavimo kalbų ([[Java_(kalba)|Java]], C#). Yra
specialių kalbų skirtų išimtinai interfeisų aprašymams, pvz. [[CORBA]] [[IDL]].
specialių kalbų skirtų išimtinai interfeisų aprašymams, pvz. [[CORBA]] [[IDL]].


Interfeisai yra labai panašūs į abstrakčios klasės, tik juose, skirtingai nuo [[abstrakti klasė|abstrakčių klasių]], nei viena iš aprašytų funkcijų negali turėti realizacijos aprašo, šis aprašas talpinamas klasėje, kuri naudoja interfeisą. Be to, dalyje programvimo kalbų klasė gali būti kildinama tik iš vienos tėvinės abstrakčios klasės, tačiau išpildyti daug interfeisų.
Interfeisai yra labai panašūs į abstrakčios klasės, tik juose, skirtingai nuo [[abstrakti klasė|abstrakčių klasių]], nei viena iš aprašytų funkcijų negali turėti realizacijos aprašo, šis aprašas talpinamas klasėje, kuri išpildo interfeisą. Be to, kai kuriose programvimo kalbose klasė gali būti kildinama tik iš vienos tėvinės klasės, tačiau išpildyti daug interfeisų.


== Pavyzdys (java) ==
== Pavyzdys (java) ==
Eilutė 19: Eilutė 19:
}
}


Interfeisai naudingu kuriant funkcijas, kurių parametrai gali būti įvairūs objektai, jei tik jie turi šių funkcijų algoritmams reikalingus metodus (pavyzdyje - figūros plotui sužinoti). Jei objekto klasė išpildo keletą interfeisų, toks objektas tinka parametru įvairioms funkcijoms, kurių reikalaujamas argumento tipas skirtingas.
Interfeisai naudingi kuriant funkcijas, kurių parametrai gali būti įvairių klasių objektai, jei tik šių objektų klasės turi šių funkcijų algoritmams reikalingus metodus (pavyzdyje - figūros plotui sužinoti). Jei objekto klasė išpildo keletą interfeisų, tokios klasės objektas tinka parametru įvairioms funkcijoms, kurių reikalaujamas argumento tipas gali būti bet kuris iš interfeisų.


[[Category:Kompiuterių mokslas]]
[[Category:Kompiuterių mokslas]]

01:31, 15 sausio 2007 versija

Interfeisas - abstraktus objekto klasės aprašas, nusakantis, kokius metodus ši klasė privalo turėti. Tą patį interfeisą gali išpildyti keletas programoje naudojamų klasių. Ta pati klasė neretai išpildo keletą interfeisų. Galima interfeisų hierarcija, paveldint būtinus išpildyti metodus iš vieno ar kelių tėvinių interfeisų.

Interfeisus palaiko daugelis modernių programavimo kalbų (Java, C#). Yra specialių kalbų skirtų išimtinai interfeisų aprašymams, pvz. CORBA IDL.

Interfeisai yra labai panašūs į abstrakčios klasės, tik juose, skirtingai nuo abstrakčių klasių, nei viena iš aprašytų funkcijų negali turėti realizacijos aprašo, šis aprašas talpinamas klasėje, kuri išpildo interfeisą. Be to, kai kuriose programvimo kalbose klasė gali būti kildinama tik iš vienos tėvinės klasės, tačiau išpildyti daug interfeisų.

Pavyzdys (java)

/** Abstrakti geometrinė figūra */
interface Figūra {
    
   /**
   * Trikampiui, kvadratui ar apskritimui plotas skaičiuojamas
   * skirtingomis formulėmis, taigi šis metodas bus išpildytas
   * skirtingai.
   */
   int plotas();
}

Interfeisai naudingi kuriant funkcijas, kurių parametrai gali būti įvairių klasių objektai, jei tik šių objektų klasės turi šių funkcijų algoritmams reikalingus metodus (pavyzdyje - figūros plotui sužinoti). Jei objekto klasė išpildo keletą interfeisų, tokios klasės objektas tinka parametru įvairioms funkcijoms, kurių reikalaujamas argumento tipas gali būti bet kuris iš interfeisų.