alphaPlan · Strukturat e të dhënave, algoritmet dhe web-i · Fletë përmbledhëse 05
Programimi i orientuar nga objektet
Përshkruaji sendet e programit tënd si klasa, ndërto objekte prej tyre dhe lëri të ndajnë, të mbrojnë dhe të ndryshojnë sjelljen e tyre.
Idetë për t’u mbajtur mend
- 01Një klasë është një plan dhe një objekt është një send i ndërtuar sipas tij; çdo objekt mban të dhënat e veta, ndaj ndryshimi i njërit i lë të tjerët të qetë.
- 02Atributet janë të dhënat që mban një objekt dhe metodat janë veprimet që mund të bëjë; self do të thotë gjithmonë ky objekt i veçantë.
- 03Një atribut instance vendoset në __init__ dhe i takon një objekti; një atribut klase shkruhet në trupin e klasës dhe ndahet nga të gjithë.
- 04Një nënklasë e emërton klasën prind në kllapa dhe trashëgon atributet dhe metodat e saj; një metodë me të njëjtin emër te fëmija e mbishkruan atë të prindit.
- 05Polimorfizmi i lejon një cikli të vetëm të thërrasë të njëjtin emër metode mbi një grumbull të përzier objektesh dhe të lërë secilin të përgjigjet në mënyrën e vet.
- 06Kapsulimi i fsheh të dhënat pas metodave të rojtuara, dhe një klasë bazë abstrakte thotë çfarë duhet të japë çdo fëmijë pa thënë si.
Fjalët
- def __init__(self, title, pages):
- Ekzekutohet vetvetiu sa herë krijohet një objekt i ri dhe vendos të dhënat e tij fillestare.
- self.balance
- Balanca e kësaj llogarie, jo ndonjë numër i përbotshëm.
- class Bus(Vehicle):
- Bus trashëgon gjithçka që ka Vehicle dhe shton ose zëvendëson vetëm atë që ndryshon.
- super().__init__(make, wheels)
- Ekzekuton së pari __init__ të prindit, që fëmija ta ripërdorë vendosjen e tij në vend që ta kopjojë.
- self.__balance
- Dy nënvija në krye e bëjnë atributin privat, që kodi jashtë klasës të mos e arrijë dot nga rruga e dukshme.
- @abstractmethod
- Shënon një metodë pa trup që çdo fëmijë duhet ta japë; një klasë bazë e zhveshur e shënuar kështu nuk krijohet dot fare.
Bëj këtë
- Lexoje self si objekti i posaçëm mbi të cilin po ekzekutohet kjo.
- Kalo nëpër një metodë si deposit në vend që ta caktosh balancën me dorë, që rojtari brenda saj të refuzojë hyrje të gabuar.
- Përdor trashëgiminë vetëm kur mund të thuash me ndershmëri se fëmija është një lloj prindi; një rrotë është pjesë e një makine, jo fëmijë.
- Jepi çdo klase forme të njëjtin emër metode, area, që një cikël i vetëm t'i trajtojë të gjitha dhe një lloj i ri të futet pa e prekur ciklin.
- Mos i përdor klasat me detyrim në një program prej pesë rreshtash; vlera e tyre shfaqet kur disa sende mbajnë secili gjendje dhe sjellje.
Kujdes
- Një nënvijë e vetme si _balance është vetëm një shenjë e sjellshme; Python e zbaton vërtet privatësinë vetëm për dy nënvijat __balance.
- Ndryshimi i një atributi klase si interest_rate e ndryshon për çdo objekt njëherësh, ndaj përdore vetëm për vlera që janë të njëjta për tërë llojin.
- Të lexosh card.__balance nga jashtë nxjerr një AttributeError; ai dështim është kapsulimi që punon.
Gjete diçka të paqartë, të vjetruar ose që mund të përmirësohet? Sugjero një përmirësim