Este documento presenta una introducción a la programación orientada a objetos. Explica que los problemas se descomponen en términos de objetos y sus interacciones. Define clase como un grupo de objetos que comparten atributos y métodos. Detalla lenguajes orientados a objetos como Simula, Smalltalk, C++ y Java. Finalmente, describe principios como abstracción, encapsulamiento, herencia y polimorfismo.
1. CENTRO DE ESTUDIOS
TECNOLÓGICOS, INDUSTRIAL
Y DE SERVICIOS NO.70
Integrantes:
Cárdenas Domínguez, Itzel
De la Rosa Gómez, Perla
Mónica
Domínguez Gómez, Raúl
Andrés
Osmar Jesús, Braulio
Osmar
Docente: Lic. Ana Bertha
May Nill.
3. INTRODUCCIÓN
La programación orientada a objetos es otro enfoque que ayuda a
descomponer los problemas para reducir su complejidad y poder
desarrollar soluciones. En este caso, el problema se descompone o
se describe en términos de los elementos que aparecen en el
problema y la forma en que estos interactúan entre sí. A estos
elementos se les llaman Objetos. Así el paradigma orientado a
objetos proporciona las herramientas necesarias para representar
objetos y sus relaciones dentro de un escenario “realista” del
problema a resolver.
Hay cierta naturalidad en este enfoque debido a que
constantemente estamos tratando de clasificar objetos, conceptos
y nociones abstractas, para formar grupos en los que sus
elementos que pertenecen a un mismo grupo comparten
características comunes y éstas a su vez sirven para diferenciarlos
de los otros grupos y por eso podemos darles nombres
4. CLASE
En programación orientada a objetos, a cada grupo se le llama “Clase” y un elemento del grupo
es un objeto. Cada objeto pertenece a una clase, la cual se caracteriza por un conjunto de rasgos
comunes y propiedades (datos), llamados atributos o variables miembro, y por un conjunto de
reglas bien definidas llamadas métodos o funciones miembro. De este modo, los objetos están
compuesto de atributos y métodos que típicamente actúan cobre sus propios atributos.
Las clases son el mecanismo para definir conjuntos de objetos, junto con las operaciones para
manipularlos. La definición de una clase no puede ser modificada en tiempo de ejecución del
problema, mientras que los objetos se crean y pueden modifican los valores de sus atributos en
tiempo de ejecución. Cada objeto es una entidad independiente y representan entidades lógicas
distintas. Clase
Atributo 1
Atributo 2
…
Método1()
Método2()
…
5. LENGUAJE ORIENTADOS A
OBJETOS
El primer lenguaje orientado a objetos fue Simula-67, liberado en 1967.
Este lenguaje fue creado para desarrollar simulaciones de fenómenos del
mundo real, tales como problemas de ingeniería, procesos industriales,
etc. Por ejemplo, en el problema clásico del cajero bancario, en el cual
hay que decidir si es mejor que cada cajero atienda su propia fila de
clientes o que haya una sola fila de clientes en el banco y que ellos vayan
siendo atendidos conforme se desocupan los cajeros. En este problema
hay una variedad de objetos: los cajeros, los clientes, las cuentas, las
transacciones, las unidades monetarias, etc. Así, es necesario definir las
clases (Cajero, Cliente, Cuenta, etc.) y después crear los objetos de cada
clase, para modelar las interacciones entre los objetos y hacer las
6. C++
En 1972 fue liberado Smalltalk, que fue el primer lenguaje
orientado a objetos de propósito general.
Posteriormente C++ empezó a ser desarrollado en Bell Labs
desde 1979, extendiendo el lenguaje C para obtener una
versión orientada a objetos, aunque no de forma pura pues
permitía combinar la programación estructurada de C con la
programación orientada a objetos. C++ fue liberado en
1983 y es actualmente uno de los lenguajes más exitosos.
7. JAVA
A Principios de los años 90´s se empezó a considerar que la
televisión interactiva sería la tecnología del futuro, y la
empresa Sun Microsystems decidió que era necesario contar
con un lenguaje especial y portable. Así empezó a
desarrollarse Java y en 1994, ante el fallido intento de la
televisión interactiva, el proyecto se enfocó en el desarrollo
de aplicaciones Web usando este lenguaje. Java implementa
el paradigma orientado a objetos y tiene una sintaxis similar
a la de C++, lo cual facilita su aprendizaje. Sin embargo, no
es compatible con C++, elimina el uso de apuntadores para
mantener la seguridad y facilitar su uso, pero tuvo serios
problemas de optimización de las instrucciones, por lo que
8. PRINCIPIOS DE PROGRAMACIÓN
ORIENTADA A OBJETOS
Los objetos son instantes de alguna clase, la cual define los atributos (los datos) que caracterizan a los
objetos de esta clase y proporciona ciertos métodos (operaciones o funciones) para manipular los
atributos y recibir mensajes para realizar alguna acción en respuesta a tal mensaje. Cuando se dice que
se “envía un mensaje” es equivalente a decir que se manda a llamar a la función miembro. El paso de
mensajes es un concepto central en programación orientada a objetos que permite aplicar el principio
de ocultamiento de información sobre los detalles de implementación de la estructura interna de un
objeto y sus atributos deberían ser accesibles para manipularlos por los propios métodos del objeto.
Los lenguajes de programación orientados a objetos deben tener las siguientes propiedades
excepcionales:
La Abstracción
El Encapsulamiento
La Herencia
El Polimorfismo
9. ABSTRACCIÓN
Permite describir las características esenciales que comparten un conjunto de objetos,
excluyendo los detalles de fondo. Mediante este uno se puede centrar en lo que el objeto
hace en lugar de especificar cómo lo hace. Proporciona una visión generalizada de una clase,
mostrando lo que es relevante. Nos permite generar una representación gráfica de la clase
Automóvil, que nos indica que cada objeto de esta clase tiene un motor, llantas, puertas y
luces, y que cuenta con los procedimientos que lo hacen cambiar el estado de sus atributos,
como abrir y cerrar una puerta, arrancar, encender sus luces avanzar, frenar y pagarse.Automóvil
Motor
Llantas
Puertas
Luces
abrirPuerta()
cerrarPuerta()
arrancar()
encenderLuces()
avanzar()
frenar()
apagar()
10. ENCAPSULAMIENTO
Permite empaquetar los atributos y las funciones miembro de una clase para protegerlos. Hay
diferentes niveles de protección los cuales determinan qué objetos y qué clases pueden acceder a
qué atributos y métodos de una clase. Esto permite ocultar algunas características estructurales de
los objetos.
Se da a través de las clases y en ella s se establece el acceso se tiene a sus métodos y atributos, y
esto previene que se elimine información o que se asignen valores a los atributos que no tienen
sentido.
11. HERENCIA
Es una propiedad que permite que nuevas clases sean creadas a partir de otros ya existentes,
con lo cual los objetos de la nueva clase adquieren características (atributos y métodos)
similares a los de la clase base, pero además se pueden agregar nuevos atributos o métodos
que correspondan a las características propias de la nueva clase y por las cuales se diferencia
de la clase base.
12. POLIMORFISMO
Es la capacidad que tiene los objetos de una clase de responder al mismo
mensaje o evento realizando diferentes acciones dependiendo de los
parámetros utilizados al invocar a una de las funciones miembro de la
clase.
13. PREGUNTAS
¿Qué es la Programación Orientada a Objetos?
¿De qué está compuesto un Objeto?
¿Qué es el Polimorfismo?
¿Qué diferencia hay entre Abstracción y
Encapsulamiento?