⊗ppOpFnMt 64 of 107 menu

PHP-де ООЖ-дағы Абстракті әдістер

Абстракті кластар сонымен қатар абстракті әдістерді қамтуы мүмкін. Мұндай әдістердің ережесі болмауы керек, және олар тек осындай әдістер туыстық кластарда болуы керек екенін көрсету үшін қажет. Ал нақты осы әдістердің ережесін жазу - бұл туыстық кластардың міндеті.

Әдісті абстракті етіп жариялау үшін, оны жариялау кезінде abstract күлт сөзін жазу керек.

Практикада көрейік. User класының барлық туыстарында increaseRevenue әдісі болуы керек деп есептейік.

Бұл әдіс қолданушының ағымдағы табысын алып, ол параметр ретінде берілген белгілі бір санға көбейтуі керек.

User класының өзі туыстың нақты қандай табыс алатынын білмейді - еңбек ақы алушы жұмысшы үшін бұл жалақы, ал студент үшін - стипендия. Сондықтан әрбір туыс бұл әдісті өзгеше ережелейді.

Мұндағы мағынасы мынада: User класының абстракті әдісі бағдарламашыны осы әдісті туыстарда ережелеуге мәжбүрлейді, әйтпесе PHP қате шығарады. Осылайша сіз, немесе сіздің кодыңызбен жұмыс істейтін басқа бағдарламашы, туыста қажетті әдісті ережелеуді ешқашан ұмыта алмайсыз.

Енді, практикада көрейік. User класына increaseRevenue абстракті әдісін қосайық:

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } // Денесіз абстракті әдіс: abstract public function increaseRevenue($value); } ?>

Employee класымыз әлі өзгеріссіз қалсын. Бұл жағдайда, тіпті Employee класының нысанын жасамаса да, тек біздің кластарды анықтайтын кодты іске қосқанда - PHP қате шығарады.

Енді Employee класында increaseRevenue әдісінің ережесін жазайық:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } // Әдістің ережесін жазайық: public function increaseRevenue($value) { $this->salary = $this->salary + $value; } } ?>

Класымыздың жұмысын тексерейік:

<?php $employee = new Employee; $employee->setName('john'); $employee->setSalary(1000); $employee->increaseRevenue(100); echo $employee->getSalary(); ?>

increaseRevenue әдісін Student класында да ережелейік. Бірақ енді біздің әдіс стипендияны көбейтеді:

<?php class Student extends User { private $scholarship; // стипендия public function getScholarship() { return $this->scholarship; } public function setScholarship($scholarship) { $this->scholarship = $scholarship; } // Әдіс стипендияны көбейтеді: public function increaseRevenue($value) { $this->scholarship = $this->scholarship + $value; } } ?>

User класыңызға дәл осындай абстракті increaseRevenue әдісін қосыңыз. Осы әдістің ережесін Employee және Student кластарында жазыңыз.

Figure класында фигураның ауданы мен периметрін алу үшін абстракті әдістер жасаңыз.

Қазақ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართული한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау