Per spiegare la differenza tra proprietà e campi occorre introdurre alcuni concetti fondamentali della programmazione ad oggetti.
Ciascuna classe che rappresenta un elemento reale del sistema che deve essere simulato attraverso il software è costituito essenzialmente da una serie di caratteristiche specifiche e da una serie di "comportamenti"; una classe, quindi, incorpora dati e procedure che lavorano su di essi.
I dati sono memorizzati all'interno di campi, variabili appartenenti a classi che possono essere rese accessibili all'esterno (public) oppure nascoste (private) in modo che sia possibile modificarle solamente attraverso l'uso di procedure e funzioni della classe, cioè metodi.
Questo consente di mantenere ogni oggetto, istanza di una determinata classe, in uno stato consistente, impedendo a qualsiasi entità esterna di modificare i dati, cioè i campi di cui è costituito l'oggetto, se non attraverso i metodi dell'oggetto stesso, che tuttavia - trattandosi di routine - possono effettuare controlli di validità sui parametri passati, modificare più campi, quindi modificare in generale lo stato dell'oggetto.
Generalmente, si usa introdurre metodi appositi per leggere e scrivere i valori dei campi privati di un oggetto.
Le proprietà appaiono esattamente come campi all'esterno, ma possono essere lette e scritte utilizzando metodi di acquisizione e impostazione oppure riferimenti diretti al campo che ne conterrà il valore; in alternativa, è possibile creare proprietà il cui valore viene determinato con un calcolo.
Riassumendo, ciascuna classe è composta da dati e procedure che accedono ai dati; i dati sono memorizzati in campi, che generalmente vengono nascosti all'esterno affinché non siano modificabili, in modo incontrollato, dall'esterno, correndo il rischio di porre l'oggetto in uno stato non consistente. Quindi, si utilizzano generalmente metodi per leggere e scrivere valori all'interno dei campi. L'uso delle proprietà consente di introdurre "campi virtuali" che, dietro le quinte, invocano questi metodi per determinarne o impostarne il valore.
Ricerca eventualmente documentazione ed esempi a riguardo per saperne di più.
Ciao!![]()