Programación Orientada A Objetos
Programación Orientada A Objetos
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.
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:
} ..
A continuación se muestra el
resultado del llamado a este
constructor
... }
{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.