Cosa sono pubblici, privati ​​e protetti nella programmazione orientata agli oggetti?

Cosa sono pubblici, privati ​​e protetti nella programmazione orientata agli oggetti?

Sono modificatori di accesso e ci aiutano a implementare l’ incapsulamento (o l’occultamento delle informazioni). Dicono al compilatore quali altre classi dovrebbero avere accesso al campo o al metodo che si sta definendo.

private – Solo la class corrente avrà accesso al campo o al metodo.

protected – Solo la class corrente e le sottoclassi (e talvolta anche le classi same-package) di questa class avranno accesso al campo o al metodo.

public – Qualsiasi class può fare riferimento al campo o chiamare il metodo.

Ciò presuppone che queste parole chiave vengano utilizzate come parte di una dichiarazione di campo o di metodo all’interno di una definizione di class.

Tutti e tre sono modificatori di accesso e parole chiave che vengono utilizzati in una class. Qualsiasi cosa dichiarata in pubblico può essere utilizzata da qualsiasi object all’interno della class o al di fuori della class, le variabili in privato possono essere utilizzate solo dagli oggetti all’interno della class e non possono essere modificate tramite accesso diretto (poiché può cambiare attraverso funzioni come la funzione friend) . Qualsiasi cosa definita nella sezione protetta può essere utilizzata dalla class e dalla class appena derivata.

Non sono realmente concetti ma piuttosto parole chiave specifiche che tendono a verificarsi (con semantica leggermente diversa) in linguaggi popolari come C ++ e Java.

Essenzialmente, hanno lo scopo di consentire a una class di limitare l’accesso ai membri (campi o funzioni). L’idea è che meno un tipo è autorizzato ad accedere in un altro tipo, meno la dipendenza può essere creata. Ciò consente di modificare più facilmente l’object cui si accede senza influire sugli oggetti che fanno riferimento ad esso.

Parlando in generale, il pubblico significa che a tutti è consentito l’accesso, i mezzi privati ​​che solo i membri della stessa class sono autorizzati ad accedere, e protetti significa che anche i membri delle sottoclassi sono autorizzati. Tuttavia, ogni lingua aggiunge le proprie cose a questo. Ad esempio, C ++ ti consente di ereditare non pubblicamente. In Java, c’è anche un livello di accesso predefinito (pacchetto), e ci sono regole sulle classi interne, ecc.

Un object pubblico è accessibile da qualsiasi altra class. Devi solo sapere quale object è e puoi usare un operatore punto per accedervi. Protetto significa che una class e le sue sottoclassi hanno accesso alla variabile, ma non altre classi, hanno bisogno di usare un getter / setter per fare qualsiasi cosa con la variabile. Un privato significa che solo quella class ha accesso diretto alla variabile, tutto il resto necessita di un metodo / funzione per accedere o modificare tali dati. Spero che questo ti aiuti.

Per riassumere, nella programmazione orientata agli oggetti, tutto è modellato in classi e oggetti. Le classi contengono proprietà e metodi. Parole chiave pubbliche, private e protette vengono utilizzate per specificare l’accesso a questi membri (proprietà e metodi) di una class da altre classi o altri .dll o anche altre applicazioni.