Programación Orientada a Objetos: Encapsulamiento

En este artículo hablaré sobre programación orientada a objetos (POO) específicamente del término Encapsulamiento (Encapsulation).

En el artículo anterior hablé un poco sobre conceptos básicos que también están relacionados con la programación orientada objetos y que nos servirán al lo largo de estos artículos cuyo tema principal es la “Estructura de Datos”.

Quiero comparar este término con un cápsula o píldora, a lo largo del artículo irás comprendiendo porqué.

icono con capsulas
Icons made by Freepik from www.flaticon.com

Programación Orientada a Objetos (POO)

La POO se desarrolla alrededor del concepto de un objeto. Un objeto es un elemento que puede ser del mundo real o no, tiene atributos o características y tiene funciones.

Un buen ejemplo de objeto es un carro. Un carro tiene atributos como color, modelo, año, etc. Y también tiene funciones (acciones) como encender, parar, acelerar, etc.

Un objeto es una instancia de una clase o una entidad creada a partir de la declaración de un clase. En una clase se definen los atributos y funciones de un objeto. Las funciones de una clase son llamadas métodos.

Encapsulamiento

Entonces el encapsulamiento engloba todo lo que se refiere a una clase con sus atributos o variables, campos y funciones o métodos definidos.

Encapsulamiento

Los objetos hacen que la conexión entre los datos y métodos tenga claridad y sentido.

Modificadores de acceso

Los modificadores de acceso o access modifiers son características de acceso que se asignan a las variables o métodos para definir cómo pueden ser usadas dentro y/o fuera de un programa.

public – puede ser usado por cualquier objeto
protected – solo accesible desde la clase y clases que heredan (veremos el concepto de herencia en el próximo artículo)
private – solo accesible desde la clase

💡 La encapsulación garantiza la integridad de los datos porque nos permite definir cómo los atributos pueden ser accedidos o modificados.

Como indicaba al prinipio del artículo el encapsulamiento se asemeja a una cápsula, este objeto guarda dentro pequeñas porciones de otros componentes que están protegidos por una capa soluble que evita que su contenido se salga de sus sitio.

Ejemplo 1: Clase

En este trozo de código hemos creado una clase con 2 atributos: marca y color, estos atributos están definidos como públicos. también hay 2 métodos uno para asignar el valor de la marca y otro para obtener el valor de la marca.

<?php
/* Ejemplo de una clase */
class Carro {
    // Atributos - Variables
    public $marca;
    public $color;

    // Metodos - Funciones
    function set_marca($marca) {
        $this->marca = $marca;
    }
    function get_marca() {
        $this->marca;
    }
}
?>

Ejemplo 2: Objeto

Este ejemplo es continuación del anterior, aquí creamos dos objetos que tendran acceso a los atributos y métodos de clase que definimos antes.

<?php 
/* Declaracion de un objeto - instanciar una clase */
$audi = new Carro();
$bmw = new Carro();

$audi->set_marca("Audi");
$bmw->set_marca("BMW");

echo $audi->get_marca();
echo "<br>";
echo $bmw->get_marca();

/**
 * Resultado: 
 * Audi
 * BMW
 */

Image by AJS1 from Pixabay

Compartir

Leave a Reply

Your email address will not be published. Required fields are marked *