Esta es la segunda lección de nuestro Curso de programación orientada a objetos en PHP, asegúrate de haber visto la primera lección ¿Por qué necesitamos clases y objetos? antes de continuar.
Hoy vamos a hablar sobre uno de los objetivos más importantes de la Programación Orientada a Objetos, el cuál es poder proteger y ocultar información, a dicho proceso se le denomina encapsulamiento.
El encapsulamiento de datos previene que el desarrollador haga cambios inesperados al sistema, como también ocultar la información para que no pueda ser modificada o vista por otras clases y esto es muy útil pero además fácil de hacer, como aprenderemos en la lección de hoy.
¿Cómo accedemos a dicha información de forma segura? En el desarrollo de esta clase vamos a explicarte cómo podemos modificar de forma segura las propiedades (o variables) de una clase y cómo podemos presentar dicha información al usuario de una forma correcta con el uso de métodos conocidos como Setters y Getters.
Repositorio
Ver el código de esta lección en GitHub
Recuerda tener siempre en cuenta:
Getter: Su función es permitir el obtener el valor de una propiedad de la clase y así poder utilizar dicho valor en diferentes métodos.
Setter: Su función permite brindar acceso a propiedades especificas para poder asignar un valor fuera de la clase.
exit($person1->firstName) //Imprime el valor y termina el script actual.
Para tener una definición más clara de los niveles de acceso puedes dirigirte a la lección de Encapsulamiento del curso teórico de OOP.
Ejercicios
- Agrega validación adicional para que el usuario sólo pueda agregar nicknames que tengan al menos 2 caracteres y no sean igual a su nombre o apellido.
- Agrega la propiedad «fecha de nacimiento» a la clase persona, y que esta propiedad pueda pasarse a través del constructor. Luego crea un método para obtener la edad del usuario (getAge), por supuesto la edad la vas a calcular a partir de la fecha de nacimiento.
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.
Lección anterior ¿Por qué necesitamos clases y objetos? Lección siguiente Herencia y abstracción con PHP