SlideShare una empresa de Scribd logo
1 de 31
Universidad Nacional de Ingeniería.
Facultad de Ciencias y Sistemas.
Dpto de Informática
Asignatura: Introducción a la Programación
Unidad III:
Introducción.
Cuando hacemos referencia a la programación orientada a
objetos no estamos hablando de unas cuantas características
nuevas añadidas a un lenguaje de programación. Estamos
hablando de una nueva forma de pensar acerca del proceso de
descomposición de problemas y de desarrollo de soluciones
de programación. La programación orientada a objetos surge en la
historia como un intento para dominar la complejidad que, de
forma innata, posee el software. En la POO vamos a fijarnos no en
lo que hay que hacer (verbos o acciones) en el problema, sino en
cuál es el escenario real del mismo, y vamos a intentar simular ese
escenario en nuestro programa.
Introducción.
En el caso de los lenguajes orientados a objetos, como es el caso
de C++ y Java, el elemento básico no es la función, sino un
ente denominado precisamente objeto. Un objeto es la
representación, en un programa, de un concepto; y contiene
toda la información necesaria para abstraerlo: datos que
describen sus atributos y operaciones que pueden realizarse
sobre los mismos.
Introducción.
Es cierto que con C++ se puede escribir código que no es
programación orientada a objetos. Esta situación no se da en
Java, dotado desde las primeras etapas de su diseño para la
POO, y donde no cabe obviar la orientación a objetos para el
desarrollo de programas.
Un ejemplo.
Un domingo por la tarde estoy en casa viendo la televisión, y
de repente mi madre siente un fuerte dolor de cabeza; como es
natural, lo primero que hago es tratar de encontrar una caja de
aspirinas. Lo que acabo de describir es una situación que
probablemente no resulte muy extraña a muchos de nosotros.
Vamos a verla en clave de objetos…
Un ejemplo.
El objeto hijo ha recibido un mensaje procedente del objeto
madre. El objeto hijo responde al mensaje o evento ocurrido
mediante una acción: buscar aspirinas. La madre no tiene que
decirle al hijo dónde debe buscar, es responsabilidad del hijo
resolver el problema como considere más oportuno. Al objeto
madre le basta con haber emitido un mensaje.
Un ejemplo.
El hijo no encuentra aspirinas en el botiquín y decide acudir a la
farmacia de guardia más cercana para comprar aspirinas. En la
farmacia es atendido por una señorita que le pregunta qué desea,
a lo que el hijo responde: "una caja de aspirinas, por favor". La
farmacéutica desaparece para regresar al poco tiempo con una
caja de aspirinas en la mano. El hijo paga el importe, se despide y
vuelve a su casa. Allí le da un comprimido a su madre, la cual al
cabo de un rato comienza a experimentar una notable mejoría
hasta la completa desaparición del dolor de cabeza.
Un ejemplo.
El hijo, como objeto responsable de un cometido, sabe lo
que debe hacer hasta conseguir una aspirina. Para ello entra en
relación con un nuevo objeto, la farmacéutica, quien responde al
mensaje o evento de petición del objeto hijo con la búsqueda de la
aspirina. El objeto farmacéutica es ahora el responsable de la
búsqueda de la aspirina. El objeto farmacéutica lanza un mensaje
al objeto hijo solicitando el pago del importe, y el objeto hijo
responde a tal evento con la acción de pagar.
Un ejemplo.
Como hemos podido ver, en esta situación nos hemos encontrado
con objetos que se diferenciaban de los demás por un conjunto
de características o propiedades, y por un conjunto de acciones
que realizaban en respuesta a unos eventos que se originaban en
otros objetos o en el entorno. También podemos darnos cuenta de
que, aunque todos los objetos tienen propiedades distintas,
como el color del cabello, el grado de simpatía o el peso,
todos tienen un conjunto de atributos en común por ser ejemplos
de una entidad superior llamada “ser humano”.
Un ejemplo.
A este patrón de objetos (en nuestro caso “ser humano”) lo
llamaremos clase. Con este ejemplo espero que se entienda
que los objetos son instancias o casos concretos de las clases,
que no son más que plantillas que definen las variables y los
métodos comunes a todos los objetos de un cierto tipo. La clase
“ser humano” tendrá, entre sus muchas variables miembro o
variables que la componen: color del cabello, color de los ojos,
estatura, peso, fecha de nacimiento, etc.
Un ejemplo.
A partir de una clase se podrán generar todos los objetos que
se deseen especificando valores particulares para cada una de
las variables definida por la clase. Así, encontraremos el
objeto farmacéutica, cuyo color de cabello es rubio, color de ojos
azul, estatura 175 cm., peso 50 Kg., y así sucesivamente.
Otro ejemplo.
Por ejemplo, un objeto que modelase una bicicleta en el mundo
real tendría variables que indicararían el estado actual de la
bicicleta: su velocidad es de 20 km/h, su cadencia de pedaleo 90
r.p.m. y su marcha actual es la 5ª. Estas variables se
conocen formalmente como variables instancia o variables
miembro porque contienen el estado de un objeto bicicleta
particular y, en programación orientada a objetos, un objeto
particular se denomina una instancia.
Otro ejemplo.
Además de estas variables, el objeto bicicleta podría tener
métodos para frenar, cambiar la cadencia de pedaleo, y
cambiar de marcha (la bicicleta no tendría que tener un
método para cambiar su velocidad pues ésta es función de la
cadencia de pedaleo, la marcha en la que está y de si los frenos
están siendo utilizados o no, entre otros muchos factores). Estos
métodos se denominan formalmente métodos instancia o
métodos miembro, ya que cambian el estado de una instancia u
objeto bicicleta particular.
Otro ejemplo.
Otro ejemplo.
El diagrama del objeto
bicicleta muestra las variables
objeto en el núcleo o centro
del objeto y los métodos
rodeando el núcleo y
protegiéndolo de otros
objetos del programa. Este
hecho de empaquetar o
proteger las variables
miembro con los métodos
miembro se denomina
encapsulamiento.
Otro ejemplo.
Este dibujo conceptual que
muestra el núcleo de
variables miembro del
objeto protegido por una
membrana protectora de
métodos o funciones
miembro es la representación
ideal de un objeto y es el ideal
que los programadores
orientados a objetos deben
buscar.
Beneficios P.O.O.
A menudo, por razones prácticas, es posible que un objeto desee
exponer alguna de sus variables miembro, o proteger otras de
sus propios métodos o funciones miembro. Por ejemplo, Java
permite establecer 4 niveles de protección de las variables y
de las funciones miembro para casos como éste. Los niveles
de protección determinan qué objetos y clases pueden
acceder a qué variables o a qué métodos. De cualquier forma, el
hecho de encapsular las variables y las funciones miembro
relacionadas proporciona dos importantes beneficios a los
programadores de aplicaciones:
Beneficios P.O.O.
1. Capacidad de crear módulos: El código fuente de un objeto
puede escribirse y mantenerse independiente del código
fuente del resto de los objetos. Así, un objeto puede
pasarse fácilmente de una parte a otra del programa.
Podemos dejar nuestra bicicleta a un amigo, y ésta seguirá
funcionando.
Beneficios P.O.O.
2. Protección de información: Un objeto tendrá una interfaz
pública perfectamente definida que otros objetos podrán usar
para comunicarse con él. Así, los objetos pueden mantener
información privada y pueden cambiar el modo de operar
de sus funciones miembros sin que esto afecte a otros objetos
que usen estas funciones miembro. Es decir, no
necesitamos entender cómo funciona el mecanismo de
cambio de marcha para hacer uso de él.
Mensajes.
Un solo objeto no es muy útil. En general, un objeto aparece como
un componente de un programa o de una aplicación que
contiene otros muchos objetos. Precisamente haciendo uso de
esta interacción, los programadores consiguen una funcionalidad
de mayor orden y modelan comportamientos mucho más
complejos.
Una bicicleta colgada de un gancho en el garaje no es más que una
estructura de aleación de titanio y un poco de goma. Por sí sola, tu
bicicleta es incapaz de desarrollar actividad alguna. Tu bicicleta es
realmente útil en tanto que otro objeto (tú) interactúa con ella
(pedalea.)
Mensajes.
Los objetos de un programa interactúan y se comunican
entre ellos por medio de mensajes. Cuando un objeto A quiere
que otro objeto B ejecute una de sus funciones miembro (métodos
de B), el objeto A manda un mensaje al objeto B.
Mensajes.
Mensajes.
Mensajes.
En ocasiones, el objeto que recibe el mensaje necesita más
información para saber exactamente lo que tiene que hacer; por
ejemplo, cuando se desea cambiar la marcha de una bicicleta, se
debe indicar la marcha a la que se quiere cambiar. Esta
información se pasa junto con el mensaje en forma de
parámetro.
Partes que componen un mensajes.
1. El objeto al cual se
manda el mensaje
(TuBicicleta).
2. El método o función
miembro que debe
ejecutar
(CambiarDeMarcha).
3. Los parámetros que
necesita ese método
(Marcha)
Partes que componen un mensajes.
1. El objeto al cual se
manda el mensaje
(TuBicicleta).
2. El método o función
miembro que debe
ejecutar
(CambiarDeMarcha).
3. Los parámetros que
necesita ese método
(Marcha)
Partes que componen un mensajes.
Estas tres partes del
mensaje (objeto
destinatario, método y
parámetros) son
suficiente información
para que el objeto que
recibe el mensaje
ejecute el método o la
función miembro
solicitada.
Ventajas de los mensajes.
1. El comportamiento de un objeto está completamente
determinado (a excepción del acceso directo a variables
miembro públicas) por sus métodos, así que los mensajes
representan todas las posibles interacciones que pueden
realizarse entre objetos.
2. Los objetos no necesitan formar parte del mismo proceso, ni
siquiera residir en un mismo ordenador para mandarse
mensajes entre ellos (y de esta forma interactuar.)
¿Qué es un clase?
En el mundo real existen varios objetos de un mismo tipo,
o como diremos enseguida, de una misma clase. Por ejemplo,
mi bicicleta es una de las muchas bicicletas que existen en el
mundo. Usando la terminología de la programación orientada
a objetos, diremos que mi bicicleta es una instancia de la clase
de objetos conocida como bicicletas. Todas las bicicletas tienen
algunos estados o atributos (color, marcha actual, cadencia
actual, dos ruedas) y algunos métodos (cambiar de marcha,
frenar) en común. Sin embargo, el estado particular de cada
bicicleta es independiente del estado de las demás bicicletas.
En el mundo real existen varios objetos de un mismo tipo,
o como diremos enseguida, de una misma clase. Por ejemplo,
mi bicicleta es una de las muchas bicicletas que existen en el
mundo. Usando la terminología de la programación orientada
a objetos, diremos que mi bicicleta es una instancia de la clase
de objetos conocida como bicicletas. Todas las bicicletas tienen
algunos estados o atributos (color, marcha actual, cadencia
actual, dos ruedas) y algunos métodos (cambiar de marcha,
frenar) en común. Sin embargo, el estado particular de cada
bicicleta es independiente del estado de las demás bicicletas.
¿Qué es un clase?
La cadencia es la velocidad
a la que pedaleamos y la
medimos en pedaladas o
revoluciones por minuto
que dan las bielas.
¿Qué es un clase?
La particularización de estos atributos puede ser diferente.
Es decir, una bicicleta podrá ser azul, y otra roja, pero ambas
tienen en común el hecho de tener una variable “color”. De este
modo podemos definir una plantilla de variables y métodos
para todas las bicicletas. Las plantillas para crear objetos
son denominadas clases. Una clase es una plantilla que define
las variables y los métodos que son comunes para todos los
objetos de un cierto tipo.
http://luis.izqui.org/resources/ProgOrientadaObjetos.pdf

Más contenido relacionado

La actualidad más candente

Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Whaleejaa Wha
 
Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.Juan Carlos Espinoza
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y ObjetosKudos S.A.S
 
Apunte paradigma orientado a objetos
Apunte paradigma orientado a objetosApunte paradigma orientado a objetos
Apunte paradigma orientado a objetosAlejandro Canosa
 
Curso Android Tema 4
Curso Android Tema 4Curso Android Tema 4
Curso Android Tema 4Frank Jorge
 
Clase y Objeto de la POO
Clase y Objeto de la POOClase y Objeto de la POO
Clase y Objeto de la POOjvaldes9928
 
Poo Java
Poo JavaPoo Java
Poo Javaeccutpl
 
PROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOAnabel Jaramillo
 
Cadena de responsabilidad.chaine of responsability
Cadena de responsabilidad.chaine of responsabilityCadena de responsabilidad.chaine of responsability
Cadena de responsabilidad.chaine of responsabilityUTCH
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetosRenny Batista
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetosClara Patricia Avella Ibañez
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosalexis armas
 

La actualidad más candente (20)

Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.
 
Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
POO sencillito
POO sencillitoPOO sencillito
POO sencillito
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 
T3 - JPA
T3 - JPAT3 - JPA
T3 - JPA
 
Pilares de la POO
Pilares de la POOPilares de la POO
Pilares de la POO
 
Apunte paradigma orientado a objetos
Apunte paradigma orientado a objetosApunte paradigma orientado a objetos
Apunte paradigma orientado a objetos
 
Curso Android Tema 4
Curso Android Tema 4Curso Android Tema 4
Curso Android Tema 4
 
Clase 2 poo java
Clase 2 poo javaClase 2 poo java
Clase 2 poo java
 
Clase y Objeto de la POO
Clase y Objeto de la POOClase y Objeto de la POO
Clase y Objeto de la POO
 
Componentes en-poo
Componentes en-pooComponentes en-poo
Componentes en-poo
 
Poo Java
Poo JavaPoo Java
Poo Java
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
PROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETO
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Cadena de responsabilidad.chaine of responsability
Cadena de responsabilidad.chaine of responsabilityCadena de responsabilidad.chaine of responsability
Cadena de responsabilidad.chaine of responsability
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetos
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 

Similar a Introducción a la progrogramación orientada a objetos

Similar a Introducción a la progrogramación orientada a objetos (20)

Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Unidad III epoo
Unidad III epooUnidad III epoo
Unidad III epoo
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
La programación orientada a objetos
La programación orientada a objetosLa programación orientada a objetos
La programación orientada a objetos
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Conceptos POO PV
Conceptos POO PVConceptos POO PV
Conceptos POO PV
 
Poo
PooPoo
Poo
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Prog.orientada a objeto
Prog.orientada a objetoProg.orientada a objeto
Prog.orientada a objeto
 
Base de datos orientada a objetos vs base obje to relacion
Base de datos orientada a objetos vs base obje to relacionBase de datos orientada a objetos vs base obje to relacion
Base de datos orientada a objetos vs base obje to relacion
 
UT05-POO.pdf
UT05-POO.pdfUT05-POO.pdf
UT05-POO.pdf
 
P.o.o.
P.o.o.P.o.o.
P.o.o.
 
P.o.o.
P.o.o.P.o.o.
P.o.o.
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetos
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
Introducion a POO
Introducion a POOIntroducion a POO
Introducion a POO
 
Prog orientadaobjetos
Prog orientadaobjetosProg orientadaobjetos
Prog orientadaobjetos
 
Prog orientadaobjetos
Prog orientadaobjetosProg orientadaobjetos
Prog orientadaobjetos
 
1 prog orientadaobjetos
1 prog orientadaobjetos1 prog orientadaobjetos
1 prog orientadaobjetos
 
Unidad i parte i
Unidad i parte iUnidad i parte i
Unidad i parte i
 

Más de Facultad de Ciencias y Sistemas

Introducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaIntroducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaFacultad de Ciencias y Sistemas
 

Más de Facultad de Ciencias y Sistemas (20)

Ejercicios HTML 5
Ejercicios HTML 5Ejercicios HTML 5
Ejercicios HTML 5
 
CSS3
CSS3CSS3
CSS3
 
09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c
 
08 mas-de-vectores-en-c
08 mas-de-vectores-en-c08 mas-de-vectores-en-c
08 mas-de-vectores-en-c
 
07 vectores-en-c final
07 vectores-en-c final07 vectores-en-c final
07 vectores-en-c final
 
06 clases-en-c
06 clases-en-c06 clases-en-c
06 clases-en-c
 
05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c
 
04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c
 
03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c
 
02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c
 
01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c
 
Procesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con pythonProcesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con python
 
Actividades de aprendizaje en Moodle
Actividades de aprendizaje en MoodleActividades de aprendizaje en Moodle
Actividades de aprendizaje en Moodle
 
Creación de grupos en Moodle
Creación de grupos en MoodleCreación de grupos en Moodle
Creación de grupos en Moodle
 
Introducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaIntroducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con Java
 
Como crear un diagrama de clases
Como crear un diagrama de clasesComo crear un diagrama de clases
Como crear un diagrama de clases
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01
 
Otro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UMLOtro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UML
 
Un ejemplo de diagrama de clases
Un ejemplo de diagrama de clasesUn ejemplo de diagrama de clases
Un ejemplo de diagrama de clases
 

Último

DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 

Último (20)

DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 

Introducción a la progrogramación orientada a objetos

  • 1. Universidad Nacional de Ingeniería. Facultad de Ciencias y Sistemas. Dpto de Informática Asignatura: Introducción a la Programación Unidad III:
  • 2. Introducción. Cuando hacemos referencia a la programación orientada a objetos no estamos hablando de unas cuantas características nuevas añadidas a un lenguaje de programación. Estamos hablando de una nueva forma de pensar acerca del proceso de descomposición de problemas y de desarrollo de soluciones de programación. La programación orientada a objetos surge en la historia como un intento para dominar la complejidad que, de forma innata, posee el software. En la POO vamos a fijarnos no en lo que hay que hacer (verbos o acciones) en el problema, sino en cuál es el escenario real del mismo, y vamos a intentar simular ese escenario en nuestro programa.
  • 3. Introducción. En el caso de los lenguajes orientados a objetos, como es el caso de C++ y Java, el elemento básico no es la función, sino un ente denominado precisamente objeto. Un objeto es la representación, en un programa, de un concepto; y contiene toda la información necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos.
  • 4. Introducción. Es cierto que con C++ se puede escribir código que no es programación orientada a objetos. Esta situación no se da en Java, dotado desde las primeras etapas de su diseño para la POO, y donde no cabe obviar la orientación a objetos para el desarrollo de programas.
  • 5. Un ejemplo. Un domingo por la tarde estoy en casa viendo la televisión, y de repente mi madre siente un fuerte dolor de cabeza; como es natural, lo primero que hago es tratar de encontrar una caja de aspirinas. Lo que acabo de describir es una situación que probablemente no resulte muy extraña a muchos de nosotros. Vamos a verla en clave de objetos…
  • 6. Un ejemplo. El objeto hijo ha recibido un mensaje procedente del objeto madre. El objeto hijo responde al mensaje o evento ocurrido mediante una acción: buscar aspirinas. La madre no tiene que decirle al hijo dónde debe buscar, es responsabilidad del hijo resolver el problema como considere más oportuno. Al objeto madre le basta con haber emitido un mensaje.
  • 7. Un ejemplo. El hijo no encuentra aspirinas en el botiquín y decide acudir a la farmacia de guardia más cercana para comprar aspirinas. En la farmacia es atendido por una señorita que le pregunta qué desea, a lo que el hijo responde: "una caja de aspirinas, por favor". La farmacéutica desaparece para regresar al poco tiempo con una caja de aspirinas en la mano. El hijo paga el importe, se despide y vuelve a su casa. Allí le da un comprimido a su madre, la cual al cabo de un rato comienza a experimentar una notable mejoría hasta la completa desaparición del dolor de cabeza.
  • 8. Un ejemplo. El hijo, como objeto responsable de un cometido, sabe lo que debe hacer hasta conseguir una aspirina. Para ello entra en relación con un nuevo objeto, la farmacéutica, quien responde al mensaje o evento de petición del objeto hijo con la búsqueda de la aspirina. El objeto farmacéutica es ahora el responsable de la búsqueda de la aspirina. El objeto farmacéutica lanza un mensaje al objeto hijo solicitando el pago del importe, y el objeto hijo responde a tal evento con la acción de pagar.
  • 9. Un ejemplo. Como hemos podido ver, en esta situación nos hemos encontrado con objetos que se diferenciaban de los demás por un conjunto de características o propiedades, y por un conjunto de acciones que realizaban en respuesta a unos eventos que se originaban en otros objetos o en el entorno. También podemos darnos cuenta de que, aunque todos los objetos tienen propiedades distintas, como el color del cabello, el grado de simpatía o el peso, todos tienen un conjunto de atributos en común por ser ejemplos de una entidad superior llamada “ser humano”.
  • 10. Un ejemplo. A este patrón de objetos (en nuestro caso “ser humano”) lo llamaremos clase. Con este ejemplo espero que se entienda que los objetos son instancias o casos concretos de las clases, que no son más que plantillas que definen las variables y los métodos comunes a todos los objetos de un cierto tipo. La clase “ser humano” tendrá, entre sus muchas variables miembro o variables que la componen: color del cabello, color de los ojos, estatura, peso, fecha de nacimiento, etc.
  • 11. Un ejemplo. A partir de una clase se podrán generar todos los objetos que se deseen especificando valores particulares para cada una de las variables definida por la clase. Así, encontraremos el objeto farmacéutica, cuyo color de cabello es rubio, color de ojos azul, estatura 175 cm., peso 50 Kg., y así sucesivamente.
  • 12. Otro ejemplo. Por ejemplo, un objeto que modelase una bicicleta en el mundo real tendría variables que indicararían el estado actual de la bicicleta: su velocidad es de 20 km/h, su cadencia de pedaleo 90 r.p.m. y su marcha actual es la 5ª. Estas variables se conocen formalmente como variables instancia o variables miembro porque contienen el estado de un objeto bicicleta particular y, en programación orientada a objetos, un objeto particular se denomina una instancia.
  • 13. Otro ejemplo. Además de estas variables, el objeto bicicleta podría tener métodos para frenar, cambiar la cadencia de pedaleo, y cambiar de marcha (la bicicleta no tendría que tener un método para cambiar su velocidad pues ésta es función de la cadencia de pedaleo, la marcha en la que está y de si los frenos están siendo utilizados o no, entre otros muchos factores). Estos métodos se denominan formalmente métodos instancia o métodos miembro, ya que cambian el estado de una instancia u objeto bicicleta particular.
  • 15. Otro ejemplo. El diagrama del objeto bicicleta muestra las variables objeto en el núcleo o centro del objeto y los métodos rodeando el núcleo y protegiéndolo de otros objetos del programa. Este hecho de empaquetar o proteger las variables miembro con los métodos miembro se denomina encapsulamiento.
  • 16. Otro ejemplo. Este dibujo conceptual que muestra el núcleo de variables miembro del objeto protegido por una membrana protectora de métodos o funciones miembro es la representación ideal de un objeto y es el ideal que los programadores orientados a objetos deben buscar.
  • 17. Beneficios P.O.O. A menudo, por razones prácticas, es posible que un objeto desee exponer alguna de sus variables miembro, o proteger otras de sus propios métodos o funciones miembro. Por ejemplo, Java permite establecer 4 niveles de protección de las variables y de las funciones miembro para casos como éste. Los niveles de protección determinan qué objetos y clases pueden acceder a qué variables o a qué métodos. De cualquier forma, el hecho de encapsular las variables y las funciones miembro relacionadas proporciona dos importantes beneficios a los programadores de aplicaciones:
  • 18. Beneficios P.O.O. 1. Capacidad de crear módulos: El código fuente de un objeto puede escribirse y mantenerse independiente del código fuente del resto de los objetos. Así, un objeto puede pasarse fácilmente de una parte a otra del programa. Podemos dejar nuestra bicicleta a un amigo, y ésta seguirá funcionando.
  • 19. Beneficios P.O.O. 2. Protección de información: Un objeto tendrá una interfaz pública perfectamente definida que otros objetos podrán usar para comunicarse con él. Así, los objetos pueden mantener información privada y pueden cambiar el modo de operar de sus funciones miembros sin que esto afecte a otros objetos que usen estas funciones miembro. Es decir, no necesitamos entender cómo funciona el mecanismo de cambio de marcha para hacer uso de él.
  • 20. Mensajes. Un solo objeto no es muy útil. En general, un objeto aparece como un componente de un programa o de una aplicación que contiene otros muchos objetos. Precisamente haciendo uso de esta interacción, los programadores consiguen una funcionalidad de mayor orden y modelan comportamientos mucho más complejos. Una bicicleta colgada de un gancho en el garaje no es más que una estructura de aleación de titanio y un poco de goma. Por sí sola, tu bicicleta es incapaz de desarrollar actividad alguna. Tu bicicleta es realmente útil en tanto que otro objeto (tú) interactúa con ella (pedalea.)
  • 21. Mensajes. Los objetos de un programa interactúan y se comunican entre ellos por medio de mensajes. Cuando un objeto A quiere que otro objeto B ejecute una de sus funciones miembro (métodos de B), el objeto A manda un mensaje al objeto B.
  • 24. Mensajes. En ocasiones, el objeto que recibe el mensaje necesita más información para saber exactamente lo que tiene que hacer; por ejemplo, cuando se desea cambiar la marcha de una bicicleta, se debe indicar la marcha a la que se quiere cambiar. Esta información se pasa junto con el mensaje en forma de parámetro.
  • 25. Partes que componen un mensajes. 1. El objeto al cual se manda el mensaje (TuBicicleta). 2. El método o función miembro que debe ejecutar (CambiarDeMarcha). 3. Los parámetros que necesita ese método (Marcha)
  • 26. Partes que componen un mensajes. 1. El objeto al cual se manda el mensaje (TuBicicleta). 2. El método o función miembro que debe ejecutar (CambiarDeMarcha). 3. Los parámetros que necesita ese método (Marcha)
  • 27. Partes que componen un mensajes. Estas tres partes del mensaje (objeto destinatario, método y parámetros) son suficiente información para que el objeto que recibe el mensaje ejecute el método o la función miembro solicitada.
  • 28. Ventajas de los mensajes. 1. El comportamiento de un objeto está completamente determinado (a excepción del acceso directo a variables miembro públicas) por sus métodos, así que los mensajes representan todas las posibles interacciones que pueden realizarse entre objetos. 2. Los objetos no necesitan formar parte del mismo proceso, ni siquiera residir en un mismo ordenador para mandarse mensajes entre ellos (y de esta forma interactuar.)
  • 29. ¿Qué es un clase? En el mundo real existen varios objetos de un mismo tipo, o como diremos enseguida, de una misma clase. Por ejemplo, mi bicicleta es una de las muchas bicicletas que existen en el mundo. Usando la terminología de la programación orientada a objetos, diremos que mi bicicleta es una instancia de la clase de objetos conocida como bicicletas. Todas las bicicletas tienen algunos estados o atributos (color, marcha actual, cadencia actual, dos ruedas) y algunos métodos (cambiar de marcha, frenar) en común. Sin embargo, el estado particular de cada bicicleta es independiente del estado de las demás bicicletas.
  • 30. En el mundo real existen varios objetos de un mismo tipo, o como diremos enseguida, de una misma clase. Por ejemplo, mi bicicleta es una de las muchas bicicletas que existen en el mundo. Usando la terminología de la programación orientada a objetos, diremos que mi bicicleta es una instancia de la clase de objetos conocida como bicicletas. Todas las bicicletas tienen algunos estados o atributos (color, marcha actual, cadencia actual, dos ruedas) y algunos métodos (cambiar de marcha, frenar) en común. Sin embargo, el estado particular de cada bicicleta es independiente del estado de las demás bicicletas. ¿Qué es un clase? La cadencia es la velocidad a la que pedaleamos y la medimos en pedaladas o revoluciones por minuto que dan las bielas.
  • 31. ¿Qué es un clase? La particularización de estos atributos puede ser diferente. Es decir, una bicicleta podrá ser azul, y otra roja, pero ambas tienen en común el hecho de tener una variable “color”. De este modo podemos definir una plantilla de variables y métodos para todas las bicicletas. Las plantillas para crear objetos son denominadas clases. Una clase es una plantilla que define las variables y los métodos que son comunes para todos los objetos de un cierto tipo. http://luis.izqui.org/resources/ProgOrientadaObjetos.pdf