Prugrammazzioni vutata a l'uggetti
Ntâ nfurmàtica, a prugrammazzioni vutata a l'uggetti (PVU, o OOP 'n ingrisi, Object-Oriented Programming), o macari prugrammazzioni a uggetti, è na manera di scrìviri prugrammi nfurmàtici (zuè un paradigma di prugrammazzioni) pi mezzu di uggetti ca pàrranu unu cu n'autru pi scanciàrisi dati e pi cancialli comu voli l'utenti. A prugrammazzioni vutata a l'uggetti è assai canusciuta picchì è addisignata pi a scrìviri còdici mudulari, zuè còdici chi si ponnu turnari a usari fàcili nta autri parti dû stissu pruggettu o di l'autri utenti. Nta sta manera, a prugrammazzioni vutata a l'uggetti ajuta u sbiluppaturi a manijari prugrammi assai granni e traficusi.
Storia
canciaU primu linguaggiu di prugrammazzioni vutata a l'uggetti fu Simula (1967). N'autru linguaggiu mpurtanti chi usava stu mudeḍḍu di prugrammazzioni era Smalltalk (1980), unni un prugramma è fattu di nu nzemi di uggetti chi parràvanu unu cu n'autru mannànnusi missaggi. Di l'anni '90, Java addivintau unu ntra i linguaggi di prugrammazzioni vutata a l'uggetti chi appi cchiù assai successu.
Oji cci sunnu assai linguaggi di prugrammazzioni chi suppòrtanu a prugrammazzioni vutata a l'uggetti, comu: Python, Java, C++, JavaScript, C#, Ruby, PHP, TypeScript, Kotlin e autri.
Carattarìstichi
canciaU cuncettu principali d'arrè â prugrammazzioni vutata a l'uggetti è ca tuttu è n'uggettu. Furmali, n'uggettu è na spicìfica istanza di na classi. L'uggetti tèninu i dati e i pruciduri chi travàgghianu cu ssi dati:
- I dati ponnu èssiri variàbbili e/o custanti (nùmmari, listi, ecc.). Ntâ prugrammazzioni vutata a l'uggetti si chiàmanu attribbuti, speci quannu sunnu dintra a n'uggettu.
- I pruciduri sunnu na seri di istruzzioni chi dìcinu ô computer chi fari e comu (pigghiari i dati misi di l'utenti, fari i càrculi, canciari i dati, dàrici u risurtatu a l'utenti, ecc.). Ntâ prugrammazzioni vutata a l'uggetti si chiàmanu mètudi. Nzèmmula, i mètudi di na classi fannu a so ntirfacci. Sulu i cumanni difinuti dâ ntirfacci ponnu èssiri chiamati di fora, e sulu pi mezzu dâ ntirfacci si ponnu lèggiri e canciari i dati dintra a n'uggettu.
A carattarìstica di spàrtiri l'usu di n'uggettu e a canuscenza dî minutagghi di comu funziona si chiama ncapsulazzioni. A ncapsulazzioni è unu dî tri cuncetti chiavi dâ prugrammazzioni vutata a l'uggetti. L'autri dui sunnu u polimurfìsimu e a riditarità. U polimurfìsimu pirmetti a uggetti diversi di fari a stissa cosa nta maneri diversi. A riditarità è l'abbilità di criari na classi partennu di n'autra classi cchiù ginirali, ma canciànnuci i mètudi.
Esempiu
canciaL'esempiu cca sutta fa vìdiri tutti i carattirìstichi chi cuntammu nzinu a ora. Criamu na classi Sicilian
chi àvi n'attribbutu name
(pû nomu dû cristianu) e un mètudu introduce
(pû fari prisintari) chi cunteni un cumannu chi usa l'attribbutu name
. U còdici è scrivutu 'n Python.
class Sicilian:
def __init__(self, name):
self.name = name
def introduce(self):
print(f"Sugnu {self.name}.")
class Palermitan(Sicilian):
def introduce(self):
print(f"Sugnu {self.name}. Salutamu!")
class Catanese(Sicilian):
def introduce(self):
print(f"Sugnu {self.name}. Sabbinidica!")
vicenzu = Palermitan("Vicenzu")
sarbaturi = Catanese("Sarbaturi")
vicenzu.introduce() # Sugnu Vicenzu. Salutamu!
sarbaturi.introduce() # Sugnu Sarbaturi. Sabbinidica!
Autri paradigmi
canciaA prugrammazzioni vutata a l'uggetti è ùtili assai quannu un prugramma si po spàrtiri nta cchiù assai parti, chi pàrranu fàcili unu cu n'autru, e quannu l'arguritmi sunnu agghiummarati ê dati chi ùsanu. Nta l'autri casi, è capaci ca autri maneri di scrìviri prugrammi nfurmàtici sunnu cchiù megghiu. Pi diri, a prugrammazzioni vutata a l'aspetti (AspectJ, AspectC11, ecc.) funziona bonu pi manijari ḍḍi azzioni chi pìgghianu tanti uggetti diversi tutti nzèmmula, comu u munituraggiu (logging), e a prugrammazzioni ginèrica (C++, D, Eiffel, ecc.) funziona bonu chî dati slijati.
Comu è-è, a majurìa dî linguaggi di prugrammazzioni sunnu n'ammiscu di paradigmi diversi. P'esempiu, Python cunzenti di scrìviri prugrammi usannu sia a prugrammazzioni vutata a l'uggetti e sia chiḍḍa prucidurali.