Los métodos con visibilidad
privada solamente pueden ser usados dentro de la clase que los contiene. Para poder entender la
forma en que funciona la visibilidad privada podemos analizar el siguiente
código PHP:
<?php
class mensaje{
//método privado
private
function hola(){
echo "Hola ";
}
}
?>
En el script PHP anterior hemos creado una clase llamada “mensaje” usando la palabra clave “class” y dentro de dicha clase hemos
insertado un método con visibilidad privada. El método con visibilidad privada
usa la palabra “private” antes del
nombre del método que es “hola”.
Dicho método imprime en pantalla un mensaje “Hola”.
Ahora se va a agregar otro método a
la clase anterior, el cual se llama “comoEstan”
y dicho método va a usar el método privado “hola”.
El código PHP resultante es el siguiente:
<?php
class mensaje{ //método privado
private function hola(){
echo "Hola ";
}
//método que usa el método privado
public function comoEstan(){
$this->hola();
echo "cómo están? saludos";
}
}
?>
Podemos observar en el script PHP de
la parte superior que para usar el método con visibilidad privada desde el
interior de la clase que lo contiene se
debe usar la palabra “$this”, después debemos de colocar una flecha “->”, el
nombre del método y unos paréntesis (). Ahora para poder usar el método
“comoEstan” debemos de instanciar un objeto y debemos de agregar el siguiente
código PHP:
//instanciando objeto y ejecutando
uno de los métodos
$objeto=new mensaje();
$objeto->comoEstan();
En el código PHP de la parte
superior hemos creado un objeto en la
primera línea. El objeto se instancia creando una variable “$objeto”, después
colocamos la palabra clave “new” y el nombre de la clase junto a unos paréntesis
(). Para usar uno de los método colocamos “$objeto”, una flecha “->” y
finalmente el nombre del método y unos paréntesis ().Ahora ejecutamos el script PHPanterior y el resultado es el siguiente:
Hola cómo están?saludos
Todo lo anterior
demuestra que los métodos con visibilidad privada o private se pueden usar
desde dentro de la clase que las contiene.
Ahora voy a demostrar
que sí un método con visibilidad privada se ejecuta desde el exterior de una
clase se genera un mensaje de error. Para ello voy a usar el siguiente código PHP:
<?php
class datosPersonales{
//propiedades
privadas
private $nombre="Raymundo Cerón"; private
$pais="México";
//método
privado
private function display(){
echo $this->nombre;
echo "<br/>";
echo $this->pais;
}
}
?>
En el script PHP anterior hemos
creado una clase llamada “datosPersonales”, la cual contiene dos propiedades
privadas, una se llama “$pais” y la otra “$nombre”. Después hay un método con visibilidad privada; la
visibilidad privada se declara usando la palabra “private”. El nombre del
método privado es “display”.
Ahora es
momento de intentar ejecutar el método privado desde afuera de la clase. Vamos
a agregar las siguientes líneas de código PHP al script anterior:
//instanciando objeto
$objeto=new datosPersonales();
$objeto->display();
Se puede apreciar en las líneas de código PHP de la parte superior
que hemos instanciado un objeto usando la palabra clave “new” y después el
nombre de la clase que es “datosPersonales”. También se puede ver que estamos ejecutando
el método privado “display”. Para ello
hemos colocado “$objeto”, una flecha “->” y el nombre del método.
Sí ejecutamos el script PHP anterior
se genera el siguiente mensaje de error:
Fatal error: Uncaught Error: Call to private method datosPersonales::display()...
Todo lo
anterior demuestra que un método con visibilidad privada no puede ser usado
desde afuera de una clase pues genera un
mensaje de error.

No comments:
Post a Comment