2- Encapsulation (Visibilité)
Dans la 1ère partie nous avons vu comment créer un objet et comment l’instancier.
Nous avons utilisé un mot clé « public » pour déclarer nos propriétés et nos méthodes.
Ce mot clé permet de définir la visibilité de nos propriétés et méthodes, élément indispensable au bon fonctionnement de nos objets et de notre logique, basé sur le principe d’encapsulation.
Une bonne gestion de l’encapsulation permet de protéger l’utilisation de votre objet par les développeurs qui seraient amenés à en faire usage.
- Les différentes visibilités
Il existe 3 visibilités pour nos propriétés et méthodes :
- public : la propriété ou la méthode pourront être accédés depuis l’intérieur et l’extérieur de la classe
- private : l’accès à la propriété ou la méthode est possible uniquement depuis l’intérieur de la classe
- protected : équivalent à private mais accessible également dans les classes héritées
- Private et Protected
Nous allons traiter des visibilités « private » et « protected » simultanément, leur fonctionnement étant identique.
Si nous passons les propriétés « titulaire » et « solde » en private, il ne sera plus possible de les modifier ni d’y accéder directement.
Ainsi, si notre classe est définie comme ceci

Nous ne pourrons pas accéder à nos propriétés de cette façon

Nous aurons une erreur d’accès

- Les accesseurs
Afin de pouvoir définir et lire nos propriétés en « private« , nous allons créer des « accesseurs« , méthodes permettant d’y accéder.
Les getters
La convention veut que la méthode s’appelle « getPropriete » où « Propriete » est à remplacer par le nom de la propriété concernée. Nous aurons donc « getSolde » et « getTitulaire » dans notre cas.
Les méthodes seront crées comme ceci

Nous pourrons donc accéder, par exemple, au titulaire du compte en écrivant

Les setters
Les « setters » permettent de définir la valeur des propriétés privées. Faire un « setter » permet, par exemple, de s’assurer que la valeur stockée dans la propriété est cohérente avec ce qui est prévu.
La convention veut que la méthode s’appelle « setPropriete » où « Propriete » est à remplacer par le nom de la propriété concernée. Nous aurons donc « setSolde » et « setTitulaire » dans notre cas.
Nous écrirons les « setters » de cette façon

Nous accéderons donc à notre « setter » de cette façon

- La méthode __toString
La question ayant été posée lors du live, voici une description de la méthode magique __toString.
Cette méthode permet de définir ce qui sera renvoyé par notre objet si quelqu’un essaie de l’afficher au moyen d’un « echo » par exemple.
Nous retournerons une chaîne de caractères de notre choix de la façon suivante


