Quote Originariamente inviata da roquentin Visualizza il messaggio
La mia domanda è: in quale classe devo istanziare la prima classe (cioè quella che ha i dati privati ed i metodi set e get ) ?
Onestamente ... non ho capito il dubbio. L'incapsulamento è principalmente solo una tecnica, non è un qualcosa di imposto o controllato da un linguaggio (perlomeno parlando in generale). Semmai a seconda del linguaggio l'incapsulamento è possibile o meno in base a cosa il linguaggio offre riguardo il controllo della "visibilità" degli elementi.

In "C" non ci sono le parole chiave public/protected/private. Tutto è implicitamente "pubblico". Se si ha un riferimento ad una variabile struct, chiunque può accederci e a tutti i suoi campi. Se si ha (es. da un header .h) la dichiarazione di una funzione e questa è poi effettivamente definita in un obj/lib linkato, chiunque la può invocare.

In Java il controllo della visibilità è invece ben presente e possibile. Se una classe A ha accesso (ovvero ne ha visibilità) ad una classe B, allora può averne un riferimento. Se ha accesso al suo costruttore, la può istanziare e se ha accesso a campi/metodi, li può usare.