0% encontró este documento útil (0 votos)
30 vistas13 páginas

Poo 1

Este documento describe los conceptos fundamentales de la programación orientada a objetos (POO). Explica que la POO intenta modelar el mundo real mediante la identificación de objetos y relaciones entre ellos. Luego describe las cinco características clave de la POO: abstracción, encapsulamiento, herencia, polimorfismo y modularidad. Finalmente, explica que las clases y objetos son los componentes fundamentales de la POO, y proporciona detalles sobre cómo definir clases en PHP.

Cargado por

Vladimir Morote
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
30 vistas13 páginas

Poo 1

Este documento describe los conceptos fundamentales de la programación orientada a objetos (POO). Explica que la POO intenta modelar el mundo real mediante la identificación de objetos y relaciones entre ellos. Luego describe las cinco características clave de la POO: abstracción, encapsulamiento, herencia, polimorfismo y modularidad. Finalmente, explica que las clases y objetos son los componentes fundamentales de la POO, y proporciona detalles sobre cómo definir clases en PHP.

Cargado por

Vladimir Morote
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 13

Programación III

Prof. Paula Giaimo

PROGRAMACION ORIENTADA A OBJETOS (POO)

¿QUÉ ES?
La P.O.O (también conocida como O.O.P en inglés) es una forma de crear software. Su característica fundamental es que
intenta llevar al mundo del código lo mismo que encontramos en el “mundo real”.
Al mirar a nuestro alrededor distinguimos diferentes “objetos”, cada uno de ellos de una clase diferente. Nos resulta
muy sencillo distinguir entre un gato y una mesa; ya que son objetos de diferentes clases. La POO Propone resolver
problemas de la realidad a través de identificar objetos y relaciones de colaboración entre ellos.
Es importante aclarar que la POO no es un lenguaje de programación, sino que es una forma de construir software, y
que puede desarrollarse en diferentes lenguajes.

CARACTERISTICAS DE POO
Abstracción - Herencia – Polimorfismo – Encapsulamiento - Modularidad

ABSTRACCION:

- Ignorancia selectiva
- Decide qué es importante y qué no lo es
- Se enfoca en lo que es importante
- Ignora lo que no es importante
- Utiliza la encapsulación para reforzar la abstracción.

La abstracción es un proceso mental de extracción de las


características esenciales de algo.
La abstracción de datos permite no preocuparse de los
detalles no esenciales. Existe en casi todos los lenguajes de
programación. Las estructuras de datos y los tipos de datos
son un ejemplo de abstracción. Los procedimientos y
funciones otro ejemplo.
La capacidad de un objeto de cumplir sus funciones
independientemente del contexto en el que se lo utilice; o
sea, un objeto “cliente” siempre expondrá sus mismas
propiedades y dará los mismos resultados a través de sus
eventos, sin importar el ámbito en el cual se haya creado. Es
poder generalizar un objeto como tipo de dato, con sus
características y comportamientos comunes.

1
Programación III
Prof. Paula Giaimo

ENCAPSULAMIENTO:

Esta característica es la que denota la capacidad del objeto de responder a


peticiones a través de sus métodos sin la necesidad de exponer los medios
utilizados para llegar a brindar estos resultados.
Encapsular significa reunir a todos los elementos que pueden considerarse
pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto
permite aumentar la cohesión de los componentes del sistema.
En síntesis encapsular es ocultar la forma en que la información es
guardada.

HERENCIA:

- Va de la generalización a la especialización
- Clase base o padre – clase derivada o hija
- Hereda la implementación

La herencia es uno de los conceptos más cruciales en la


POO. La herencia básicamente consiste en que una
clase pueda heredar sus variables y métodos a varias
subclases (la clase que hereda es llamada superclase o
clase padre). Esto significa que una subclase, aparte de
los atributos y métodos propios, tiene incorporados los
atributos y métodos heredados de la superclase. De
esta manera se crea una jerarquía de herencia.
Cuando decimos que un auto “es un” transporte, un
caballo “es un” animal, etc, estamos diciendo que la
clase hija (o heredera) es, además, lo mismo que su
padre.

2
Programación III
Prof. Paula Giaimo

MODULARIDAD:

Proceso de descomposición de un sistema en un conjunto de


módulos (paquetes). Cada uno de ellos debe ser tan independiente
como sea posible de la aplicación (poco acoplados) y cohesivos
(con significado propio). Esto implica que cuando necesitemos
modificar algo en nuestro software, la menor cantidad de código
posible se vea afectada por el cambio.

POLIMORFISMO:

El polimorfismo es la propiedad que indica, literalmente, la


posibilidad de que una entidad tome muchas formas. En
términos prácticos, el polimorfismo permite referirse a
objetos de clases diferentes mediante el mismo elemento de
programa y realizar la misma operación de diferentes formas,
según sea el objeto que se referencia en ese momento.
El termino polimorfismo también define la capacidad de que
más de un objeto puedan crearse usando la misma clase de
base para lograr dos conceptos de objetos diferentes.

JERARQUIZACION:

Es un proceso de estructuración por el cual se produce


una organización (jerarquía) de un conjunto de elementos
en grados o niveles de responsabilidad, de incumbencia o
de composición, entre otros.
Es importante para obtener un software ordenado.

3
Programación III
Prof. Paula Giaimo

COMPONENTES FUNDAMENTALES
Clases – Objetos

CARACTERISTICAS DE LAS CLASES:

- Una clase es una Clasificación


- Clasificamos en base a comportamientos y atributos comunes

Las clases son abstracciones de objetos. Esto quiere decir que la definición de un objeto es la clase. Cuando
programamos un objeto y definimos sus características y funcionalidades en realidad estamos programando una clase.
Cuando decimos “ave”, sabemos que nos referimos a “algo” con plumas, pico, dos patas, etc. No importa si tenemos un
ave frente a nosotros; entendemos claramente que la palabra “ave” se refiere a alguna cosa que cumple con unas
características específicas, se comporta de una forma concreta, etc. Por ejemplo, sabemos que una gallina es un ave y
que un perro no es un ave.
La clasificación es algo que hacemos todos los días, a cada momento. Cada vez que decimos que algo es
alguna cosa, estamos clasificándolo, asociándolo a una clase.
Sin embargo, sabemos que la palabra ave no se refiere a un animal concreto, sino a una serie de
animales. Ave es la palabra que usamos para identificarlos en un grupo, pero siempre que nos referimos
a “esta” o “aquella” ave, hablaremos de un animal concreto. La palabra es lo que conocemos como un
concepto, una abstracción.

En la POO ocurre igual, una clase no es más que una serie de código que define a todos los elementos
relacionados con ella. Así, podríamos escribir la clase ave colocando en ella todas las características que tienen las aves
(pico, color, alto, ancho, patas,…) esas características las llamaremos en lenguaje de programadores, propiedades o
atributos.
Las aves tienen también ciertos comportamientos específicos, como comer, dormir, reproducirse, etc. Estos
comportamientos los llamamos métodos.
Por último, también sabemos que las aves reaccionan ante ciertos sucesos, como peligro, atracción, defensa… A esto lo
llamaremos eventos.
4
Programación III
Prof. Paula Giaimo

Entonces, vemos que una clase es algo así como el concepto de lo que queremos hacer, es como la idea (concebida al
detalle) de la cosa, del objeto; pero igual que con las ideas, no puedo hacer nada directamente con una clase (puedes
sentarte en una silla, pero no en tu idea de una silla). Sin embargo, esta idea será la que dé forma al objeto que
crearemos (que tendrá las características, mecanismos y comportamientos que habíamos pensado en nuestra idea).

SINTAXIS para CLASES en PHP:


class Identificador {
//miembros: Atributos y métodos
}

class: Es una palabra reservada que le indica al compilador que el siguiente código es una clase.
Identificador: Indica el nombre de la clase

5
Programación III
Prof. Paula Giaimo

Convenciones de código para los nombres de las clases:

 Los nombres deben ser sustantivos, con la primera letra en mayúscula y el resto en minúscula. Ejemplo: Auto
 Si el nombre es compuesto, las primeras letras de cada palabra en mayúsculas, las demás en minúsculas.
Ejemplo: MiAuto
 Es importante intentar mantener los nombres de las clases simples y descriptivos. Usar palabras completas,
evitar acrónimos y abreviaturas.
 La llave de apertura "{" aparece al final de la misma línea de la sentencia declaración
 La llave de cierre "}" empieza una nueva línea indentada para ajustarse a su sentencia de apertura
correspondiente, excepto cuando no existen sentencias entre ambas, que debe aparecer inmediatamente
después de la de apertura "{"

EJEMPLO:

6
Programación III
Prof. Paula Giaimo

ATRIBUTOS:

Las propiedades o atributos son las características individuales que diferencia un objeto de otro y determinan su
apariencia, estado u otras cualidades. Los atributos se guardan en variables, y cada objeto particular puede tener valores
distintos para estas variables.
Las variables de instancia son declaradas en la clase pero sus valores son fijados y cambiados en el objeto.
https://www.php.net/manual/es/language.oop5.properties.php

SINTAXIS de atributos.

[modificador] (tipo) identificador;

Modificador: Determina la accesibilidad que tendrán sobre él las demás clases. Si no pongo ninguno se permite usar la
palabra var; la cual actúa de la misma manera que si pusiera “public”.
Tipo(opcional): A partir de PHP 7.4. Se permite definir el tipo de dato que almacenará. (No es posible en versiones
anteriores)
Identificador: Indica el nombre del atributo.

 Los nombres de variables o atributos deben empezar con el signo pesos "$".
 Los nombres de los atributos se designan en minúsculas.
 Si el nombre es compuesto, la primera letra de la segunda palabra estará en mayúscula, las demás en minúscula;
o las palabras pueden estar separadas por un guión bajo. Ejemplos: $miNombre / $mi_nombre.
 Los nombres de las variables deben ser cortos pero con significado. La elección del nombre de una variable debe
estar designado para indicar a un observador casual su función.
 Los nombres de variables de un solo carácter se deben evitar, excepto para variables índices temporales.
Nombres comunes para variables temporales son $i, $j, $k, $m, y $n para enteros; $c, $d, y e para caracteres.

METODOS:

Son las funcionalidades asociadas a los objetos. El comportamiento de los objetos


de una clase se implementa mediante métodos. Un método es un conjunto de
instrucciones que realizan una determinada tarea y son similares a las funciones
de los lenguajes estructurados.

7
Programación III
Prof. Paula Giaimo

SINTAXIS de métodos.

[modificador] function Identificador([args]){

Modificador: Determina la forma en que los métodos serán usados.


function: Indica que estamos creando un método o función.
Identificador: Indica el nombre del método.
- Los nombres deben ser verbos, en minúsculas.
- Si el nombre es compuesto la primera letra de las siguientes palabras estarán en mayúscula y las siguientes en
minúscula. Ejemplo: getNombre
Args: Representan una lista de variables cuyos valores son pasados al método para ser usados por este. Los corchetes
indican que los parámetros son opcionales.
- Los parámetros se definen como $identificadorParametro. Si hay más de un parámetro serán separados por una
coma. Ejemplo: $numeroCarga, $cantCombustible

MODIFICADORES de Acceso:
Los atributos y métodos pueden tener 3 tipos de modificadores (a partir de PHP 5):

public Permite el acceso desde cualquier clase. (Si no


ponemos modificador, por defecto será public)
protected Permite el acceso solo dentro de la clase y de
las clases derivadas.
private Solo permite el acceso desde la misma clase

8
Programación III
Prof. Paula Giaimo

CARACTERISTICAS DE LOS OBJETOS:

Un objeto es una instancia de una clase. Cuando creamos un objeto tenemos que especificar la clase a partir de la cual
se creó. Esta acción de crear un objeto a partir de una clase se llama instanciar, esta palabra viene de instance en inglés,
que significa “ejemplo”.
Los objetos son creados en tiempo de ejecución. Poseen un comportamiento que le permite realizar tareas específicas,
y un estado que le permite almacenar información fija o variable.
Por ejemplo, un objeto de la clase Fracción sería 3/5. El concepto o definición de fracción sería la clase; pero cuando ya
estamos hablando de una fracción en concreto 4/7, 8/10 o cualquier otra, la llamamos objeto.
En un mismo proyecto puedo tener varios objetos de una misma clase sin problemas.
Cada vez que creamos un nuevo objeto, éste adquiere las propiedades, métodos y eventos de la clase a la que
pertenece, sin embargo, cada objeto es independiente de los otros; esto nos da dos ventajas:

Si hago algún cambio en la clase, todos los objetos de esta clase se actualizarán automáticamente;
esto nos permite hacer cambios sin tener que ir a cada uno de los objetos.
Al ser independientes de los otros objetos, puedo darles valores diferentes sin que afecten a los
demás (como tener una silla negra, una roja, una más alta, etc.). Aunque comparten la misma
estructura, pueden programarse individualmente, dando versatilidad y flexibilidad al código.

SINTAXIS de OBJETOS

$nombreObjeto = new NombreClase();

NombreClase(): Es el constructor del objeto.


Una vez inicializado el objeto se puede utilizar para manipular sus atributos y llamar a sus métodos.

Ciclo de Vida de un Objeto:


Creación: Se usa new para asignar memoria y un constructor para inicializar un objeto en esa memoria.
Utilización del objeto: Llamadas a métodos y atributos.
Destrucción del objeto: Se vuelve a convertir el objeto en memoria y se libera la memoria.
9
Programación III
Prof. Paula Giaimo

LOS CONSTRUCTORES:
Los constructores son métodos especiales que se utilizan para inicializar objetos al
momento de su creación.
Los constructores, a partir de PHP5 se definen con la palabra __construct y nos permite
iniciarlizar las propiedades de un objeto cuando lo creamos.
Si no especificamos un constructor, existe uno por defecto
que nos permitirá crear objetos.

Características de un constructor por defecto:

 Tiene acceso publico


 Tiene el mismo nombre que la clase
 No recibe ningún argumento
 Inicializa todos los campos a cero, false o null

SINTAXIS del CONSTRUCTOR:

Si el constructor por defecto no es adecuado, lo mejor es que escribamos nuestro propio constructor.
Podemos escribir un constructor que contenga únicamente el código
necesario para inicializar campos con valores distintos a cero. Todos los
campos que no estén inicializados en este constructor conservarán su
inicialización predeterminada a cero, false o null.
Una vez declarado un constructor en nuestra clase, el constructor por
defecto deja de funcionar.

10
Programación III
Prof. Paula Giaimo

CONSTRUCTORES QUE RECIBEN ARGUMENTOS


Como se mencionó anteriormente, los constructores son métodos, por lo tanto pueden recibir valores pasados como
argumentos.
El número de argumentos en principio no tiene límites.

Ejemplo:

Creación del objeto

Operador $this:
Se usa para referirse al objeto que está ejecutando el método. Solo se puede usar adentro de un método.
Ejemplo:

El método setDistancia() recibe un valor y se lo asigna a la propiedad $distanciaR del objeto.


El método getDistancia() devuelve el valor que tiene $distanciaR en el objeto.
Ejemplo de uso de estos métodos:

11
Programación III
Prof. Paula Giaimo

DESTRUCTOR:

A partir de PHP5 se incorporan destructores: __destruct()-


El destructor de una clase es ejecutado en el momento en que un objeto deja de existir o salimos del código.
Si creamos un destructor, su código será ejecutado automaticamente al final del codigo.
Ejemplo:

PROPIEDADES Y METODOS STATIC O DE CLASE:

Propiedades estáticas:

Las propiedades y métodos estáticos pueden ser accedidos sin necesidad de crear un objeto. Van precedidos del
modificador static

Para acceder a la propiedad estática debemos usar la siguiente sintaxis:

NombreClase :: $propiedad;
Ejemplo:

Una clase puede tener propiedades estáticas y no estáticas al mismo tiempo. Para acceder a ellas desde un método de la
misma clase usamos el operador self y ::

12
Programación III
Prof. Paula Giaimo

Para invocarlo:

Metodos estáticos:

Suelen emplearse para realizar operaciones comunes a todos los objetos de la clase. No afectan a los estados de los
mismos (a los valores de sus variables de instancia). Por ejemplo, si se necesita un método para contabilizar el número
de objetos creados de una clase, tiene sentido que sea estático ya que su función (aumentar el valor de una variable
entera) se realizaría independientemente del objeto empleado para invocarle.
No conviene usar muchos métodos estáticos, pues si bien se aumenta la rapidez de ejecución, se pierde flexibilidad, no
se hace un uso efectivo de la memoria y no se trabaja según los principios de la Programación Orientada a Objetos

Para declarar un método como estático, debemos poner la palabra static

Si se invoca desde la clase en la que se encuentra definido, debemos nombrarlo luego de self::

Si se le invoca desde una clase distinta, debe anteponerse a su nombre, el de la clase en la que se encuentra seguido del
operador ::

Ejemplo:

13

También podría gustarte