PHP OO: Practicando - Definiendo Métodos de Clases get y set - Parte 3

En este capítulo desarrollo un ejemplo básico de como definir métodos de una class, siempre interezante para cualquier persona que esta comenzando a utilizar este enfoque Orientado a Objetos!
Compartir:
Este artículo es la continuación del artículo Definiendo Propiedades De Class, que realizé anteriormente.
No menos funcional que el anterior, en este artículo muestro la manera correcta de definir métodos de una class, que para este caso es la class miClase
Podemos decir que Método es una función específica de una class. Las acciones individuales que un objeto será capaz de realizar, se definen dentro de la class como métodos.
Ahora para ejemplificar todo esto abordaremos los métodos mágicos __get() e __set() que estan disponibles desde PHP 5.
PHP nos possibilita utilizar el concepto de encapsulamiento de la orientação a objetos de forma más económica, con la utilización de estos métodos.
En una classe implementada en padrones convencionales, para cada atributo privado declarado, necesitamos crear 2 métodos (set o get) para atribuir e recuperar informaciones en ese atributo fuera de la classe.
  • Teniendo en cuenta que nuestro anterior código, en el anterior ejemplo nos quedó de la siguiente manera:

<?php
    class miClase
    {
        public $propiedad1 = "Yo soy una propiedad de la class miClase";
    }

    $objeto = new miClase;

    //var_dump($objeto);
    echo $objeto->propiedad1;
?>

  • Para definir un método usted deberá agregar el siguiente código que está resaltado, al código que hemos esclarecido anteriormente:

<?php
class miClase
{
    public $propiedad1 = "Yo soy una propiedad de la class miClase";
    
    public function setPropiedad1($nuevovalor)
    {
        $this->propiedad1 = $nuevovalor;
    }
    public function getPropiedad1() 
    {
       return $this->propiedad1. "<br />";
    }
}

$objeto = new miClase;

//var_dump($objeto);
echo $objeto->propiedad1;
?>

  • Como podemos ver hemos definido primero el método setPropiedad1 , el cual va a servir para establecer("set") un $nuevovalor para la "propiedad1", la cual tiene como datos por defecto "Yo soy la propiedad de la class miClase".
    • Luego de este método definimos otro, el getPropiedad1, el cual va a obtener ("get") el valor de la "propiedad1".  

¿Cómo Muestro En Pantalla los resultados de esta definición de los métodos setPropiedad1 y getPropiedad1?

  • Primero para que sólo veamos en pantalla el resultado de la definición de estos métodos he comentado el constructor echo $objeto->propiedad1:

<?php
class miClase
{
    public $propiedad1 = "Yo soy una propiedad de la class miClase";
    
    public function setPropiedad1($nuevovalor)
    {
        $this->propiedad1 = $nuevovalor;
    }
    public function getPropiedad1() 
    {
return $this->propiedad1 . "<br />";
    }
}

$objeto = new miClase;

//var_dump($objeto);
//echo $objeto->propiedad1;
?>

  • Como podemos notar en el código antes elaborado, hemos comentado el constructor echo $objeto->propiedad1, el cual mnostraba en pantalla el valor de la propiedad1.
  • Para evocar al método getPropiedad1 desde el $objeto vamos a usar también el constructor echo seguido del $objeto y de nuestra flecha constructora evocando de forma básica al método getPropiedad1,
    • con lo cual nuestro código quedaría de la forma siguiente:

<?php
class miClase
{
    public $propiedad1 = "Yo soy una propiedad de la class miClase";
    
    public function setPropiedad1($nuevovalor)
    {
        $this->propiedad1 = $nuevovalor;
    }
    public function getPropiedad1() 
    {
        return $this->propiedad1 . "<br />";
    }
}

$objeto = new miClase;

//var_dump($objeto);
//echo $objeto->propiedad1;

echo $objeto->getPropiedad1();//obtiene $propiedad1
?>


Bueno ahora que hemos terminado nuestro código, pues pongámoslo a correr en nuestro navegador y veamos que nos queda semejante a esta imagen!

Nota Importante: Debido a que pueden existir varias instancias de una class, si no se hace referencia al objeto de manera individual, el script no podría determinar qué objeto leer. El uso de la flechita (->) es una construcción Orientada a Objetos que accede a las propiedades y métodos contenidos desde un objeto dado.

Pero ¿Cómo usaré el método setPropiedad1?  

Ahora  que hemos mostrado en pantalla el método getPropiedad1, podemos continuar con el siguiente método instanciado anteriormente, que es el setPropiedad1 y como dijimos antes, este método lo que hará es establecer ("set" en inglés) un valor para la propiedad1:
  • Primero pues realizaremos el uso de este método desde el objeto para establecer un valor nuevo $valornuevo para la propiedad1, veamos:

<?php
class miClase
{
    public $propiedad1 = "Yo soy una propiedad de la class miClase";
    
    public function setPropiedad1($nuevovalor)
    {
        $this->propiedad1 = $nuevovalor;
    }
    public function getPropiedad1() 
    {
        return $this->propiedad1 . "<br />";
    }
}

$objeto = new miClase;

//var_dump($objeto);
//echo $objeto->propiedad1;

echo $objeto->getPropiedad1();//obteniendo el valor de $propiedad1

$objeto->setPropiedad1("Yo soy un nuevo valor para la propiedad1!");
?>

  • Lo que hemos hecho anteriormente con el pedazo de código $objeto->setPropiedad1("Yo soy un nuevo valor para la propiedad1"); 
    • es establecer nuevos datos para la propiedad1
      • Pero ahora quiero que estos cambios se muestren en pantalla, ¿cómo haremos? 
  • Pues bien, para esto utilizaremos el común constructor echo seguido por el $objeto, nuestra flechita constructora que evoca propiedades y métodos; luego pues usamos nuevamente el método getPropiedad1, que es el método destinado para generar el valor de la propiedad1 y en esta oportunidad va a leer de nuevo para mostrar el cambio en pantalla, veamos esto en nuestro código siguiente que esta resaltado:
    • Entonces usamos set para anteponerlo al método que queremos configurar o establecer y
    • usamos get para anteponerlo al método que queremos generar! 

<?php
class miClase
{
    public $propiedad1 = "Yo soy una propiedad de la class miClase";
    
    public function setPropiedad1($nuevovalor)
    {
        $this->propiedad1 = $nuevovalor;
    }
    public function getPropiedad1() 
    {
        return $this->propiedad1 . "<br />";
    }
}

$objeto = new miClase;

//var_dump($objeto);
//echo $objeto->propiedad1;

echo $objeto->getPropiedad1();//obteniendo el valor de $propiedad1

$objeto->setPropiedad1("Yo soy un nuevo valor para la propiedad1!");
echo $objeto->getPropiedad1();
?>

  • Con esto habremos terminado este capítulo y haremos correr nuestro código creado, para verlo en acción y tener una idea de lo que son los métodos y como actúan, veamos:
  •  Espero hayan entendido como es que estos Métodos de Class funcionan y los invito a practicar utilizando nombres diferentes de clases, de objetos y nuevos valores para cada propiedad así como nombres para estos métodos. No olviden que sin practica no habrá suceso!
Compartir:
Localización R. Boa Vista, Gov. Celso Ramos - SC, 88190-000, Brasil

PHP

PHP Orientado a Objetos

Déjenos su Comentário:

0 commentários: