S1 Contenido Proav1302
S1 Contenido Proav1302
S1 Contenido Proav1302
Semana 1
Programación Orientada a Objetos
Semana 1
Programación Orientada a Objetos
APRENDIZAJE ESPERADO
Reservados todos los derechos Instituto Superior de Artes y Ciencias de la Comunicación S.A. No se permite copiar, reproducir, reeditar, descargar, publicar,
emitir, difundir, de forma total o parcial la presente obra, ni su incorporación a un sistema informático, ni su transmisión en cualquier forma o por cualquier
medio (electrónico, mecánico, fotocopia, grabación u otros) sin autorización previa y por escrito de Instituto Superior de Artes y Ciencias de la Comunicación
S.A. La infracción de dichos derechos puede constituir un delito contra la propiedad intelectual.
IACC 2022 2
Semana 1
Programación Orientada a Objetos
ÍNDICE
IACC 2022 3
Semana 1
Programación Orientada a Objetos
INTRODUCCIÓN
Con la evolución de la tecnología, se ha incrementado la necesidad de desarrollar programas y aplicaciones,
los cuales permitan automatizar procesos con fines de lograr una mayor eficiencia en cuanto a los procesos
de ejecución. Por otro lado, el progreso de los programas, han requerido a su vez, la robustez necesaria
para que se cumplan los estándares del entorno, lo cual se encuentra en continuo avance, requiriendo cada
vez de programas más eficientes, confiables y seguros.
Por lo antes mencionado, la Programación Orientada a Objetos (POO), ha surgido como una alternativa a
la creciente necesidad de desarrollar aplicaciones que se ajusten de la forma más certera posible, a las
exigencias de nuestro entorno actual.
La Programación Orientada a Objetos (POO), es un paradigma de programación, el cual se basa en la
creación de objetos, para poder programar o automatizar cualquier sistema. Este paradigma es utilizado
hoy en día, ya que permite elaborar aplicaciones, con código que puede ser modular y reutilizable, a través
de la creación de objetos, de forma tal que éstos pueden ser los elementos que representan a los datos de
cierta característica en particular.
En los actuales momentos, existen diversos lenguajes de programación donde se pueden crear aplicaciones
bajo este paradigma, entre ellos se pueden destacar: Java, C++, Python, C Sharp, entre otros. En este curso
particular, se hace uso del lenguaje de programación PHP, ya que este lenguaje tiene reglas de sintaxis que
son bastantes amigables para poder desarrollar programas bajo este paradigma. Adicionalmente, los
programas desarrollados son mucho más confiables en cuanto a eficiencia y seguridad.
A continuación, se desarrollarán todos los aspectos básicos que involucran la Programación Orientada a
Objetos (POO), pero enfocados en el lenguaje de programación PHP.
IACC 2022 4
Semana 1
Programación Orientada a Objetos
RESUMEN
La programación se puede entender como una técnica, a través de la cual se pueden desarrollar programas
o software que impliquen la automatización de procesos de algún interés en particular. Existen diversos
estilos de programación, tales como: la Programación Estructurada, o la Programación Orientada a Objetos
(POO), por sus siglas en inglés. Esta última, se basa en el concepto de que cualquier sistema susceptible de
ser programado, se puede simular a través de la creación de objetos, que pueden interactuar y relacionarse
entre ellos.
La (POO), ha llegado a tener gran popularidad y aceptación, ya que son muchas las situaciones y eventos
de la vida real que han sido programados bajo este estilo y se han hecho de la forma más certera posible,
en comparación con otros estilos de programación. Por medio de ésta los programas suelen ser más
eficientes y compactos, ya que permite la modularización del problema, esto hace que el código
implementado sea reutilizable, derivando en programas más rápidos y eficientes respecto a los tiempos de
ejecución.
PALABRAS CLAVE
• Lenguaje de Programación
• PHP
• Programación Orientada a Objetos
• Clases
• Atributos
PREGUNTAS GATILLANTES
• Describa un requerimiento de la vida real, en la cual se pueda programar bajo la concesión de la
programación orientada a objetos (POO), mencionando cada uno de sus componentes como
objetos que se interrelacionan entre ellos.
• ¿En qué se basa el paradigma de la Programación Orientada a Objetos? Explique con un ejemplo de
la vida real.
• Si tuviera que representar una situación de su trabajo a través de un programa, ¿Lo haría bajo la
concesión de programación estructurada o programación orientada a objetos? Justifique su
respuesta en el contexto de la situación que representa.
IACC 2022 5
Semana 1
Programación Orientada a Objetos
IACC 2022 6
Semana 1
Programación Orientada a Objetos
Eficiencia
Programación
Reutilización
Modularidad Orientada a
del código
Objetos (POO)
Programas
adaptados a
situaciones
reales
Figura 1. Esquema general de las principales ventajas que ofrece la programación orientada a objetos (POO)
Fuente: Elaboración propia
Para lograr entender en detalle este estilo de programación, se hace necesario desarrollar algunos
conceptos básicos, los cuales se presentan a continuación
1.1 CLASE
La clase, es uno de los elementos que más importancia tiene dentro de la POO, en ese sentido Oviedo
(2015), la define de la siguiente manera:
“Una Clase es una plantilla para crear objetos que constituye una abstracción del mundo real”. Una clase
puede ser considerada como una especie de molde, donde se pueden ajustar los objetos creados en un
sistema en estudio.
IACC 2022 7
Semana 1
Programación Orientada a Objetos
1.2 OBJETO
Una vez definida lo que es una clase, se puede considerar un objeto como la materialización de la clase, es
decir, es la asignación de valores a dicha clase. En ese sentido, se debe tener presente que, cuando se crea
un objeto, éste estará asociado a una clase en particular.
Ejemplo:
Una institución de educación superior desea implementar un sistema el cual lleve los registros de todos
sus estudiantes. Se pide elaborar una clase llamada Estudiante que permita representar a un estudiante
universitario y luego crear un objeto de la clase diseñada.
Solución:
La clase Estudiante es la que contiene todos los datos personales y de interés para el instituto, en ese
sentido la Figura 2 muestra las variables de interés que servirían para desarrollar el ejemplo
Clase Estudiante
nombre
apellido
Rut
dirección
teléfono
programa
semestre
IACC 2022 8
Semana 1
Programación Orientada a Objetos
Una vez definida la clase Estudiante, se procede a declarar la clase en las reglas de sintaxis del lenguaje de
programación PHP
<? php
class Estudiante{
public $nombre;
public $apellido;
public $rut;
public $direccion;
public $telefono;
public $programa;
public $semestre;}
Con la sintaxis presentada se ha declarado la clase Estudiante, dicha clase contiene 7 variables o atributos.
Por otro lado, la palabra public se refiere a que la variable puede ser leída o modificada fuera de la clase.
Ahora bien, con la clase creada, se procede a crear un objeto de la clase Estudiante, esto se ejecuta en PHP
de la siguiente manera:
$alumno1->nombre= ‘Jorge’;
$alumno1->apellido= ‘Alcazar’;
$alumno1->rut= ‘1276648-4’;
$alumno1->telefono= ‘3298-34859330’;
$alumno1->programa= ‘Informática’;
$alumno1->semestre= 5;
IACC 2022 9
Semana 1
Programación Orientada a Objetos
Recuerda qué:
Cuando se edita un código en lenguaje de programación, es necesario tener mucho cuidado con las reglas
de sintaxis, puesto que cualquier carácter puede marcar la diferencia para que nuestro programa se ejecute
con éxito.
Hasta los momentos solo se ha creado las propiedades de un objeto en particular llamado alumno1, esta
creación se ejecuta fuera de la clase. Si se quiere mostrar alguna característica en particular del objeto
alumno1, se debe crear el respectivo método dentro de la clase, por ejemplo, se va a crear un método que
muestre el nombre de alumno1, esto se puede ejecutar de la siguiente manera:
<? php
class Estudiante{
public $nombre;
public $apellido;
public $rut;
public $direccion;
public $telefono;
public $programa;
public $semestre;
public function getnombre()
{
return $this->nombre;
}
}
IACC 2022 10
Semana 1
Programación Orientada a Objetos
El método creado getnombre permite devolver el nombre del objeto instanciado que en este caso es
alumno1, ahora haciendo uso de este método, se puede mostrar la propiedad que tiene el método
getnombre y se hace fuera del código de la clase, de la siguiente manera:
Ahora, si se quiere definir un constructor, el cual tiene también la finalidad de asignar valores a un objeto
de una clase cualquiera, éste se tiene que declarar dentro de la clase, tal y como se muestra a continuación
<? php
class Estudiante{
public $nombre;
public $apellido;
public $rut;
public $direccion;
public $telefono;
public $programa;
public $semestre;
{ return $this->nombre;
this->apellido= $apellido;
IACC 2022 11
Semana 1
Programación Orientada a Objetos
Ahora se puede hacer uso del constructor, para que muestre la propiedad a la cual hace referencia, es
decir:
$alumno1= new Estudiante(‘Ramirez’);
echo $alumno1->apellido;
Hay que hacer mención que el constructor hizo la asignación, del apellido al objeto alumno1 de forma
automática y sin ser invocado. Esto ocurre porque el constructor se ejecuta de forma automática, sin
necesidad de ser invocado, razón por la cual los constructores también son llamados métodos mágicos. De
forma similar trabaja el destructor, el cual se ejecuta cuando se quiere destruir el objeto, cuya sintaxis se
muestra a continuación:
<? php
class Estudiante{
public $nombre;
public $apellido;
public $rut;
public $direccion;
public $telefono;
public $programa;
public $semestre;
public function getnombre()
{
return $this->nombre;
}
public function __construct($apellido){
this->apellido= $apellido;
}
public function __destruct(){
echo ‘objeto destruido es : ’ . this.nombre
}
}
IACC 2022 12
Semana 1
Programación Orientada a Objetos
Cuando se ejecuta la clase, aparecerá la información del nombre del alumno que fue eliminado. Al igual
que el constructor, el destructor es parte de los llamados métodos mágicos, los cuales no son invocados
para que sean ejecutados.
2.1 HERENCIA
La herencia implica tener clases que se extiendan de otras, heredando sus propiedades y métodos privados
y no privados. Es de mucha utilidad, ya que permite la implementación de una funcionalidad adicional en
objetos similares sin necesidad de reimplementar toda la funcionalidad compartida. (Cowburn, 2018). El
siguiente ejemplo mostrado, es tomado de (Cowburn, 2018), donde se hace una referencia de la
aplicabilidad de la herencia.
<?php
class Foo
{
public function printItem($string)
{
echo 'Foo: ' . $string . PHP_EOL;
}
public function printPHP()
{
echo 'PHP is great.' . PHP_EOL;
}
}
class bar extends Foo
{
public function printItem($string)
{
echo 'Bar: ' . $string . PHP_EOL;
}
IACC 2022 13
Semana 1
Programación Orientada a Objetos
}
$foo = new Foo();
$bar = new Bar();
$foo->printItem('baz'); // Salida: 'Foo: baz'
$foo->printPHP(); // Salida: 'PHP is great'
$bar->printItem('baz'); // Salida: 'Bar: baz'
$bar->printPHP(); // Salida: 'PHP is great'
?>
2.2 ENCAPSULAMIENTO
Se refiere a la propiedad que tienen los objetos en cuanto a la protección de sus detalles internos de
fuentes externas. El encapsulamiento resulta bastante útil a la hora de implementar esquemas de
seguridad en nuestros programas, es decir, cuando queremos que algunos objetos no puedan ser
modificados o leídos desde algún otro objeto del código.
Esta protección se establece colocando la respectiva palabra reservada en la declaración de los atributos.
Estas palabras pueden ser cualquiera de las siguientes opciones:
Public: el atributo o método puede ser leído/llamado desde cualquier parte del código, sea desde la misma
clase o fuera de ella, esto significa que también podrá ser alterado sin restricciones.
Private: el atributo o método establecido como private puede ser leído sólo desde el interior de la clase.
Protected: los atributos o métodos protected sólo se puede acceder a ellos desde el interior de la clase,
pero, las clases heredadas de ésta también podrán leer y alterar estos atributos.
En los ejemplos que se han establecido hasta el momento, se observa que los atributos han sido declarados
como public, esto trae como consecuencia que pueden ser leídos o modificados desde cualquier otra clase
que sea declarada, si se quiere cambiar la propiedad de ocultamiento de dichas propiedades, basta con
cambiarle la palabra reservada a cualquiera de las otras dos opciones descritas. El encapsulamiento
también es aplicado a los métodos y demás objetos de cualquier clase. En las siguientes sentencias se
observa como todos los atributos de la clase Estudiante, son private, así como también el método
getnombre() y el constructor, esto implica que si se quiere hacer cualquier llamado, lectura o modificación
sobre cualquiera de estos objetos desde fuera de la clase, el resultados será un error.
IACC 2022 14
Semana 1
Programación Orientada a Objetos
<? php
class Estudiante{
private $nombre;
private $apellido;
private $rut;
private $direccion;
private $telefono;
private $programa;
private $semestre;
return $this->nombre;
this->apellido= $apellido;
IACC 2022 15
Semana 1
Programación Orientada a Objetos
COMENTARIO FINAL
Un lenguaje de programación es un software que permite a través de un conjunto de reglas, dictar
instrucciones que permiten al computador ejecutar acciones específicas. Vale destacar que cada vez que
se ejecuta este proceso, se están creando programas. La Programación Orientada a Objetos es un
paradigma o estilo de programación, el cual permite crear programas bajo la visión o filosofía que cualquier
sistema puede ser modelado bajo la visión de objetos, los cuales tienen característica, propiedades o
acciones propias de cada uno de ellos. Este paradigma es muy utilizado, ya que permite modelar, todas las
acciones programables que se reflejan en un mundo real, crear programas bajo este estilo de programación
trae consigo ventajas tales como: la modularización de los procesos, lo cual permite la actualización o
detección de errores de una forma más rápida. Asimismo, los programas son mucho más eficientes y más
rápidos, esto se deriva en el hecho de que se puede hacer que el código sea reutilizable, lo que hace que
los programas sean más compactos.
Recuerda que:
Los programas implementados bajo este paradigma son muy utilizados en el campo laboral, donde se
requiere la automatización de procesos, con fines de reducir los tiempos de ejecución de los procesos, hoy
en día, es un valor incalculable en cualquier empresa que se encuentre en desarrollo.
IACC 2022 16
Semana 1
Programación Orientada a Objetos
REFERENCIAS
IACC 2022 17