Sąsaja (programavimas): Skirtumas tarp puslapio versijų
S robotas: brūkšneliai keičiami brūkšniais (pagal lietuvių kalbos rašybos normas) |
S Automatinis kabučių taisymas |
||
Eilutė 27: | Eilutė 27: | ||
<?php |
<?php |
||
// sukuriamas interfeisas pavadinimu |
// sukuriamas interfeisas pavadinimu „Masina“ |
||
interface Masina { |
interface Masina { |
||
// sukuriama viešai prieinama (public function) funkcija, kurią vėliau reikės aprašyti |
// sukuriama viešai prieinama (public function) funkcija, kurią vėliau reikės aprašyti |
||
Eilutė 40: | Eilutė 40: | ||
} |
} |
||
// sukuriama klasė su pavadinimu |
// sukuriama klasė su pavadinimu „Valdymas“ |
||
// |
// „implements Masina“ - nurodome, jog klasė bus aprašyta pagal „Masina“ šabloną |
||
class Valdymas implements Masina { |
class Valdymas implements Masina { |
||
Eilutė 52: | Eilutė 52: | ||
// spausdinamas tekstas |
// spausdinamas tekstas |
||
echo |
echo „Mašina juda.....<br/>\n“; |
||
} |
} |
||
public function Stoti() { |
public function Stoti() { |
||
echo |
echo „Mašina sustojo!<br/>\n“; |
||
} |
} |
||
public function Atsigrezti() { |
public function Atsigrezti() { |
||
// spausdinamas tekstas su atsitiktiniu skaičiu |
// spausdinamas tekstas su atsitiktiniu skaičiu |
||
echo |
echo „Atsigręžėme, ir pamatėme prieš mus lekiančią mašina“ . |
||
„ \“Numeris: „ . rand(1, 100) . “\ "; |
|||
} |
} |
||
protected function Sunaikinti() { |
protected function Sunaikinti() { |
||
unset($this->Masina); // sunaikinamas kintamasis kuris yra |
unset($this->Masina); // sunaikinamas kintamasis kuris yra „Valdymas“ klasėje |
||
echo |
echo „Mašina Sunaikinta!“; |
||
} |
} |
||
} |
} |
||
// sukuriamas |
// sukuriamas „Valdymas“ klasės objektas |
||
$pCar = new Valdymas; |
$pCar = new Valdymas; |
||
// panaudojame funkcijas iš klasės |
// panaudojame funkcijas iš klasės |
||
Eilutė 82: | Eilutė 82: | ||
Mašina juda..... |
Mašina juda..... |
||
Mašina sustojo! |
Mašina sustojo! |
||
Atsigręžėme, ir pamatėme prieš mus lekiančią mašina |
Atsigręžėme, ir pamatėme prieš mus lekiančią mašina „Numeris ''x''“ |
||
Fatal error..... |
Fatal error..... |
||
Kodėl pamatėme |
Kodėl pamatėme „Fatal error“ ? |
||
Ogi todėl, kad funkcija Sunaikinti() yra ne vieša ir prieinama tik klasėse. |
Ogi todėl, kad funkcija Sunaikinti() yra ne vieša ir prieinama tik klasėse. |
||
Dabar panaudokime taip: |
Dabar panaudokime taip: |
||
// sukuriamas |
// sukuriamas „Valdymas“ klasės objektas |
||
$pCar = new Valdymas; |
$pCar = new Valdymas; |
||
// panaudojame funkcijas iš klasės |
// panaudojame funkcijas iš klasės |
||
Eilutė 96: | Eilutė 96: | ||
$pCar->Atsigrezti(); |
$pCar->Atsigrezti(); |
||
ir |
ir „Fata error...“ klaida pranyko. |
||
!--> |
!--> |
12:39, 5 kovo 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ų.