Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Sesion - 2 PHP

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

PHP – Programación Orientada a Objetos

SESIÓN - 2

Declaración de una clase y creación de un


objeto

Desarrollo:

1. Declaración de una clase y creación de un objeto

Una clase es un molde del que luego se pueden crear múltiples objetos, con similares características.
Confeccionaremos nuestra primera clase para conocer la sintaxis en el lenguaje PHP, luego definiremos dos
objetos de dicha clase.
Ejercicio – 1.-Implementaremos una clase llamada Persona que tendrá como atributo (variable) su nombre
y dos métodos (funciones), uno de dichos métodos inicializará el atributo nombre y el siguiente método
mostrará en la página el contenido del mismo.
pagina1.php
<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
class Persona
{
private $nombre;
public function inicializar($nom)
{
$this->nombre=$nom;
}
public function imprimir()
{
echo $this->nombre;
echo '<br>';
}
}
$per1=new Persona();
$per1->inicializar('Luis');
$per1->imprimir();
$per2=new Persona();
$per2->inicializar('Carla');
$per2->imprimir();
?>
</body>
</html>

1
Instituto Superior Tecnológico "Hipólito Unanue"
PHP – Programación Orientada a Objetos

La sintaxis básica para declarar una clase es:

class [Nombre de la Clase] {


[atributos]
[métodos]
}

Siempre conviene buscar un nombre de clase lo más próximo a lo que representa. La palabra clave para
declarar la clase es class, seguidamente el nombre de la clase y luego encerramos entre llaves de apertura y
cerrado todos sus atributos (variable) y métodos (funciones).
Nuestra clase Persona queda definida entonces:
class Persona {
private $nombre;
public function inicializar($nom)
{
$this->nombre=$nom;
}
public function imprimir()
{
echo $this->nombre;
echo '<br>';
}
}
Los atributos normalmente son privados (private), ya veremos que esto significa que no podemos acceder al
mismo desde fuera de la clase. Luego para definir los métodos se utiliza la misma sintaxis que las funciones
del lenguaje PHP.

Decíamos que una clase es un molde que nos permite definir objetos.
Ahora la sintaxis para la definición de objetos de la clase Persona es:
$per1=new Persona();
$per1->inicializar('Luis');
$per1->imprimir();
Definimos un objeto llamado $per1 y lo creamos asignándole lo que devuelve el operador new. Siempre que
queremos crear un objeto de una clase utilizamos la sintaxis new [Nombre de la Clase]. Luego para llamar a
los métodos debemos anteceder el nombre del objeto el operador -> y por último el nombre del método.
Para poder llamar al método, éste debe ser definido público (con la palabra clave public). En el caso que
tenga parámetros se los enviamos: $per1->inicializar('Juan'); También podemos ver que podemos definir
tantos objetos de la clase Persona como sean necesarios para nuestro algoritmo:
$per2=new Persona();
$per2->inicializar('Carla');
$per2->imprimir();

2
Instituto Superior Tecnológico "Hipólito Unanue"
PHP – Programación Orientada a Objetos

Esto nos da una idea que si en una página WEB tenemos 2 menús, seguramente definiremos una clase Menú
y luego crearemos dos objetos de dicha clase. Esto es una de las ventajas fundamentales de la Programación
Orientada a Objetos (POO), es decir reutilización de código (gracias a que está encapsulada en clases) es muy
sencilla.
Lo último a tener en cuenta en cuanto a la sintaxis de este primer problema es que cuando accedemos a los
atributos dentro de los métodos debemos utilizar los operadores $this-> (this y ->):
public function inicializar($nom)
{
$this->nombre=$nom;
}
El atributo $nombre solo puede ser accedido por los métodos de la clase Persona ya que es un atributo de
tipo private.
Ejercicio – 2.- Implementaremos una segunda clase llamada usuario, con sus respectivos objetos, métodos
y atributos.
Pagina2.php
<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
class Usuario
{
private $usuario;
private $edad;
public function inicio($user, $edad=18)
{
$this->usuario=$user;
$this->edad=$edad;
}
public function saludar()
{
echo 'Hola ' . $this->usuario . ' ...';
echo '<br>';
echo 'Hoy tienes '.$this->edad.' años de edad ...';
echo '<br>';
}
}
$user1 = new Usuario;
$user1->inicio('Pedro',29);
$user1->saludar();
$user2 = new Usuario;
$user2->inicio('Rosa');
$user2->saludar();
?>
</body>
</html>

3
Instituto Superior Tecnológico "Hipólito Unanue"
PHP – Programación Orientada a Objetos

Como vemos en este ejercicio la clase tiene dos atributos de tipo privado (private), y observamos también
existen dos parámetros que recibe la función inicio y uno de ellos ya viene con un valor por defecto.
public function inicio($user, $edad=18)
{
$this->usuario=$user;
$this->edad=$edad;
}
Inicializar un parámetro con un valor por defecto nos permite variar en la creación de objetos según sus
atributos.
// Este objeto al ser instanciado envía 2 datos a la función inicio
$user1 = new Usuario;
$user1->inicio('Pedro',29);
$user1->saludar();
// En el segundo objeto como vemos solo envía un valor a la función inicio
$user2 = new Usuario;
$user2->inicio('Rosa');
$user2->saludar();
Definir valores por defecto a un parámetro nos es útil cuando omitimos alguno de ellos en la llamada que
realizamos a las funciones.

Práctica en clase

1. Basados en el siguiente diagrama de clases declarar su clase y crear dos objetos, la función que se creará
deberá tener valores por defecto.
Triangulo

- Base
- Altura
- Lado1
- Lado2
- Lado3

+ area()
+ perimetro()
+ imprimir()

4
Instituto Superior Tecnológico "Hipólito Unanue"
PHP – Programación Orientada a Objetos

2. Analizar el siguiente código y crear su diagrama de clases, identificar también los objetos que se
instancian.
<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
class Auto
{
private $color ;
private $propietario;
public function color($col= "negro")
{
$this->color=$col;
}
public function setPropietario($nombre)
{
if ($nombre) {
$this->propietario = $nombre;
}
}
public function imprimir()
{
echo 'El propietario: ' . $this->propietario . ' tiene un auto color '. $this->color;
echo '<br>-------------------------<br>';
}
}
$miAuto1 = new Auto;
$miAuto1->setPropietario("Gabriel");
$miAuto1->color("Verde");
$miAuto1->imprimir();

$miAuto2 = new Auto;


$miAuto2->setPropietario("Gabriel");
$miAuto2->color();
$miAuto2->imprimir();
?>
<body>
<html>

Cuestionario

1. Indique la sintaxis para declarar una clase


2. ¿Qué es un método y que es un atributo?
3. ¿Cuál es la palabra clave para declarar una clase?
4. Indique la sintaxis para definir un objeto
5. ¿Qué nos permite hacer el operador new?
6. ¿Cómo llamamos a un método y que operadores usamos para acceder a un atributo dentro de un método?

5
Instituto Superior Tecnológico "Hipólito Unanue"

También podría gustarte