Pascal/I modificatori public, private e protected

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search

Nella programmazione orientata agli oggetti i campi e i metodi possono essere dichiarati public e private. Esistono anche altri modificatori di campi e metodi, tipici di ogni linguaggio; il Turbo Pascal prevede anche il modificatore protected.

I modificatori public e private[modifica]

In una classe possiamo decidere se i campi e i metodi sono accessibili dall'esterno. Per esterno si intende tutto il codice che non fa parte di procedure e funzioni di un determinato oggetto (o meglio, classe). Dichiarando public un campo (o un metodo) di un oggetto, anche altri oggetti potranno utilizzare il campo (o il metodo) dichiarato public. Al contrario, se dichiaro un campo o un metodo come private, possiamo utilizzare lo stesso solamente nell'oggetto in cui è stato dichiarato.

In Turbo Pascal 7.0 se viene omessa la dichiarazione public o private, verrà assegnato, di default, il modificatore public.

La scelta di dichiarare public o private un campo o un metodo sta tutto nella scelta del programmatore per motivi di convenienza. Solitamente, sono i campi di un oggetto ad essere dichiarati private, mentre i metodi, che agiscono il più delle volte sui campi, vengono dichiarati public.

Un esempio:

TYPE MyObject = OBJECT
                   PUBLIC:
                     {                            }
                     {campi e modificatori public }
                     {                            }
                   PRIVATE: 
                     {                            }
                     {campi e modificatori private}
                     {                            }
                  END;

Il modificatore protected[modifica]

Il modificatore protected è un modificatore speciale. Possiamo definirlo come una via di mezzo tra il modificatore public e il modificatore private, infatti dichiarando un campo o un metodo come protected, lo stesso sarà utilizzabile solamente dall'oggetto in cui è stato dichiarato e dai suoi dicendenti, ovvero da tutti gli altri oggetti che ereditano.

La sintassi è analoga a quanto abbiamo visto con private e protected.