0% encontró este documento útil (0 votos)
25 vistas29 páginas

Programación Orientada A Objetos

La programación orientada a objetos es un paradigma de programación que utiliza objetos y sus interacciones para diseñar aplicaciones y programas de software. En este paradigma, los datos y el comportamiento se encapsulan dentro de clases y objetos que pueden recibir mensajes y enviar mensajes a otros objetos.

Cargado por

YelimariaPm
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 PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
25 vistas29 páginas

Programación Orientada A Objetos

La programación orientada a objetos es un paradigma de programación que utiliza objetos y sus interacciones para diseñar aplicaciones y programas de software. En este paradigma, los datos y el comportamiento se encapsulan dentro de clases y objetos que pueden recibir mensajes y enviar mensajes a otros objetos.

Cargado por

YelimariaPm
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 PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 29

Programación

Orientada a
Objetos
Integrantes:

}
Francisco López CI 26.605.897
Elisaí Puesme CI 28.350.636
Fabián Gómez CI 30.363.496
EL T3F2 SEC01
Programación Orientada a objetos

Modelo computacional:
En la POO, los objetos son entidades independientes que encapsulan datos y comportamiento.
Imaginemos un objeto que representa un coche. Este objeto tendría atributos como la marca, el
modelo, el color y la velocidad. También tendría métodos como arrancar, acelerar, frenar y girar.

Encapsulamiento:
Es una característica fundamental de la POO que permite ocultar los detalles de
implementación de un objeto. Los detalles de cómo un objeto implementa sus
métodos y almacena sus datos son irrelevantes para otros objetos.
Reusabilidad y Modularidad

{ Clases Herencia
Son plantillas que definen la estructura y Permite que una clase herede las
el comportamiento de los objetos. Una características de otra clase. Esto

}
vez que se define una clase, se puede facilita la creación de nuevas clases a
utilizar para crear tantos objetos como partir de clases existentes, lo que reduce
se necesiten. la duplicación de código.
Arquitectura Cliente/Servidor
La arquitectura cliente/servidor es un modelo de diseño de software en el que los objetos se dividen
en dos categorías: ...
Clientes Servidores
son objetos que solicitan son objetos que proporcionan
servicios a otros objetos. servicios a otros objetos.

Ejemplo:
Un cliente web podría ser un objeto que solicita una página web a un servidor web.
Un servidor web podría ser un objeto que proporciona páginas web a los clientes web.
Objetos }
Es un ente orientado a objetos (programa de
computadoras) que consta de un estado y de un
comportamiento, que a su vez constan respectivamente
de datos almacenados y de tareas realizables durante el
tiempo de ejecución.
{ ..
Clases
Es una plantilla o modelo para crear objetos. Una clase define un conjunto de atributos (datos)
y métodos (comportamientos) que los objetos pueden tener. Los atributos de una clase son las
características o propiedades que los objetos de esa clase tienen. Los métodos son las acciones
que los objetos pueden realizar.

} ..
Un ejemplo de una clase en POO
podría ser una clase Coche
En este ejemplo, la clase Coche tiene cuatro
atributos: marca, modelo, matricula y color.
También tiene tres métodos: acelerar, frenar
y girar. El método __init__ es el constructor
de la clase, que se llama automáticamente
cuando se crea un objeto de la clase. En este
ejemplo, el constructor toma los valores de
los atributos como argumentos.

}
Instancia
es un objeto individual creado a partir de una Como ya hemos comentado, los objetos son
clase que actúa como una plantilla. Cada ejemplares de una clase. Así pues, a la hora de crear
instancia tiene sus propios valores y un objeto, debemos seguir los siguientes pasos:
propiedades, lo que le permite representar
objetos únicos en un programa. 1. Declarar el objeto.
2. Instanciar el objeto (crear un objeto a partir de
una clase).
3. En este momento ya tenemos el objeto persona1
del tipo Persona creado en memoria. Así pues,
ya podemos acceder a sus atributos y métodos.
Mensajes
es una petición enviada a un objeto para que este se comporte de una determinada manera,
realizando una de sus operaciones. Si el receptor de la solicitud acepta el mensaje, aceptará la
responsabilidad de llevar a cabo la acción. En respuesta al mensaje, el receptor se comportará de
una determinada forma.

Cada mensaje consta de tres partes:


1. Identidad del objeto al que va dirigido el mensaje.
2. Operación solicitada (método).
3. Información adicional (argumentos), necesaria para poder ejecutar el método.

Su sintaxis algorítmica es:


Método
Es una función que se define dentro de una clase y se utiliza para representar el
comportamiento de un objeto. Los métodos se utilizan para realizar tareas específicas
en un objeto, como cambiar el estado de un objeto, calcular un valor, interactuar con
otros objetos, etc.

La estructura más interna de un objeto esta oculta para otros usuarios y la única
conexión que tiene con el exterior son los mensajes. Los datos que están dentro de un
objeto solamente pueden ser manipulados por los métodos asociados al propio objeto.
Variables de instancia
Cuando creamos una clase en Python, lo más común
También llamadas atributos o variables de objeto,
es inicializar los atributos o variables de instancia en
estas variables representan la información particular
el método de inicialización __init__, aunque también
de cada una de las instancias de una clase, como por
podrían crearse variables de instancia en otros
ejemplo, el nombre de cada ser humano, el color de
métodos de instancia.
una silla o el importe total de una factura.
Vamos a verlo con un ejemplo
Crearemos una clase para representar un semáforo de tráfico. La
información que nos interesa almacenar es su estado actual, que es
su color, es decir, si su luz está en rojo, en amarillo o en verde. Con
esto creamos la clase Semaforo inicializando su variable luz a rojo
(por defecto cualquier semáforo recién creado tendrá su luz en
rojo). Proporcionaremos además un método cambiar para poder
cambiar su luz cuando lo necesitemos:

Desde el momento en que la variable está creada e inicializada


podemos acceder a ella a través del nombre del objeto o de la
instancia. Por supuesto, previamente hay que crear dicha instancia.
Además, podremos invocar a la función de cambio de estado para
alterar el valor de dicha variable. A continuación creamos dos
instancias diferentes, cambiamos la luz a una de ellas y mostramos
por pantalla el color de la luz de cada instancia:

El código anterior generará el siguiente resultado por pantalla:


Creación de objetos
Un objeto se crea utilizando la instrucción new y dando el nombre
de la clase de la cual va a ser una instancia. Todas las clases tienen
un método constructor por defecto, sin necesidad de que el
programador tenga que crearlo. Como no es responsabilidad del
computador darle un valor inicial a los atributos, cuando se usa
este constructor, éstos quedan en un valor que se puede considerar
indefinido.

} ..
A continuación se muestra el
resultado del llamado a este
constructor

• El resultado de ejecutar la instrucción del


ejemplo es un nuevo objeto, con sus
atributos no inicializados.
• Dicho objeto está "referenciado" por p, que
puede ser un atributo o una variable de tipo
Producto.
Destructor de objetos
Se utiliza para destruir objetos que han sido creados por un
constructor. Al igual que un constructor, el destructor es una
función miembro cuyo nombre es el mismo que el nombre de la
clase, pero precedida por una tilde (~).

Nunca tiene argumentos y no devuelve ningún valor. Será


invocado de forma implícita por el compilador cuando el
programa finaliza (o el bloque o la función, dependiendo del caso)
para limpiar la zona de memoria ocupada que ya no es accesible.
{ .. Igualdad e identidad
Dos objetos se consideran iguales si sus Dos objetos se consideran idénticos si
valores son comparables. Esto significa son el mismo objeto en la memoria. Esto
que, si se comparan utilizando el significa que, si se comparan utilizando
operador ==, el resultado será True. el operador is, el resultado será True.
Herencia
Es el mecanismo de implementación mediante el cual elementos
más específicos incorporan la estructura y comportamiento de
elementos más generales (Rumbaugh 99).

La herencia es siempre transitiva: una clase puede heredar


características de superclases que se encuentran muchos niveles
más arriba en la jerarquía de herencia.

Ejemplo: si la clase Perro es una subclase de la clase Mamífero, y la clase


Mamífero es una subclase de la clase Animal, entonces el Perro heredará
atributos tanto de Mamífero como de Animal.
Generalización y
especialización

La generalización es la propiedad que permite compartir información entre


dos entidades evitando la redundancia.

En el comportamiento de objetos existen con frecuencia propiedades que son


comunes en diferentes objetos y esta propiedad se denomina generalización.
En el mundo de la orientación a objetos, cada uno de estos aparatos es una
subclase de la clase Electrodoméstico y a su vez Electrodoméstico es una
superclase de todas las otras clases (máquinas lavadoras, frigoríficos, hornos
de microondas, tostadoras, lavavajillas,).

El proceso inverso de la generalización por el cual se definen nuevas clases a


partir de otras ya existentes se denomina especialización.
{
Terminología
importante:
Superclase: la clase cuyas características se heredan se conoce
como superclase (o una clase base o una clase principal).

Subclase: la clase que hereda la otra clase se conoce como


subclase (o una clase derivada, clase extendida o clase hija).
La subclase puede agregar sus propios campos y métodos,
además de los campos y métodos de la superclase.

... }
{Herencia simple
es una relación entre una clase padre (clase base)
y una clase hija (clase derivada) llamada "es un
tipo de", que muchas veces se abrevia como isA.
La herencia es simple cuando la clase derivada

}
que estamos considerando sólo tiene una clase
base.
Herencia
{ múltiple
Cuando se deriva una clase usando varias clases
bases la misma se denomina herencia múltiple.
Usando la herencia múltiple una clase derivada
recibe los atributos de dos o más clases bases.

... }
{ Interfaz
son usadas para indicar qué métodos debe
obligatoriamente implementar (contener) una Clase
(aunque no tienen por qué comportarse del mismo
modo). Los métodos definidos en una una Interface
deben ser public.

...
Redefinición de métodos
es un concepto fundamental en la Las principales razones para redefinir métodos son:
programación orientada a objetos (POO) que Especialización: Adaptar el comportamiento de un
permite modificar el comportamiento de un método general a las necesidades específicas de la
método heredado de una clase padre en una subclase.
clase hija.
• Extensión: Agregar nueva funcionalidad al método original sin
modificar la clase padre.
• Corrección de errores: Solucionar errores o problemas en la
implementación del método en la superclase.
• Optimización: Mejorar el rendimiento del método para un caso
particular en la subclase
SUPER THIS
Super indica que una Nos permite especificar
variable o método es que nuestras variables
de la clase padre, la están señalando a la
superclase de cual misma clase donde
heredan nuestras estamos trabajando, ya
subclases, solo la sea una clase normal,
usamos cuando anidada, subclase o
aplicamos herencia. superclase.
Polimorfismo Polimorfismo de inclusión
Ocurre cuando un objeto puede ser tratado como un

}
objeto de una clase más general. Por ejemplo, un objeto
es una característica fundamental de la Coche puede ser tratado como un objeto Vehículo.
programación orientada a objetos (POO) que
permite que una acción se realice de diferentes
maneras dependiendo del contexto. En términos
más simples, significa que una variable o función
puede tener diferentes comportamientos Polimorfismo de subtipo
dependiendo del tipo de objeto al que se refiere.
Ocurre cuando una variable puede contener un objeto de
cualquier clase que sea subtipo de una clase dada. Por
ejemplo, una variable de tipo Vehículo puede contener un
objeto Coche, Camión o Motocicleta.
*
Binding estático Polimorfismo
La vinculación se realiza en tiempo de compilación. El Se refiere a la capacidad de una acción de comportarse de

*
}
tipo de objeto que se utiliza se determina en el momento diferentes maneras dependiendo del contexto.
en que se escribe el código.

*
Binding dinámico Sobrecarga de identificadores
La vinculación se realiza en tiempo de ejecución. El tipo Se refiere a la capacidad de usar el mismo nombre para
de objeto que se utiliza se determina en el momento en diferentes funciones o métodos con diferentes parámetros.
que se ejecuta el código.
Referencias Polimórficas:
Ventajas del Polimorfismo
• Flexibilidad: Permite escribir código más flexible
y adaptable.
Las referencias polimórficas son variables que • Reusabilidad: Permite crear código más
pueden contener referencias a objetos de reutilizable.
diferentes tipos. • Extensibilidad: Facilita la extensión del código
con nuevas funcionalidades.

Desventajas del Polimorfismo


• Complejidad: Puede aumentar la complejidad del
código.
• Dificultad de depuración: Puede dificultar la
depuración de errores.
Tipos de relaciones:

25% 50% 75%


*
Asociación Agregación Composición
Los objetos no se Es una relación entre dos Es una relación entre dos
"pertenecen" entre sí. objetos en la que un objeto objetos en la que un objeto
"contiene" al otro. "es parte" del otro.
THANKS!

También podría gustarte