You are on page 1of 11

F.PR.

Alfredo Pamos Garrido

TEMA 8:
PROGRAMACIN ORIENTADA A OBJETOS.
OBJETOS.
CLASES.
HERENCIA.
POLIMORFISMO.
LENGUAJES.

1 de 11

F.PR.

Alfredo Pamos Garrido

TEMA 8: PROGRAMACIN ORIENTADA A OBJETOS.


OBJETOS. CLASES. HERENCIA. POLIMORFISMO. LENGUAJES.
1. Programacin orientada a objetos.
1.1.Definicin.
1.2.Evolucin histrica.
1 Etapa: Lenguajes ensambladores.
2 Etapa: Lenguajes de programacin: Fortran, Algol, Cobol.
3 Etapa: Abstraccin de datos y Ocultamiento de informacin.
4 Etapa: Prototipos de lenguajes orientados a objetos.
1.3.Elementos y caractersticas principales.
1.4.Ventajas de la P.O.O.
Proteccin de la informacin.
Rpido desarrollo.
Fcil mantenimiento.
2. Objetos.
2.1.Definicin.
2.2.Estructura.
2.3.Propiedades de los objetos.
2.4.Encapsulacin.
2.5.Envo de mensajes.
3. Clases.
3.1.Definicin.
3.2.Principios bsicos.
3.3.Caractersticas.
4. Polimorfismo y sobrecarga de operadores.
5. Herencia.
5.1.Definicin.
5.2.Tipos de herencia.
6. Lenguajes.
6.1.Lenguajes puros orientados a objetos.
6.2.Lenguajes derivados de otros lenguajes.
7. Enlace o ligadura dinmica.
8. Eventos.

2 de 11

F.PR.

Alfredo Pamos Garrido

TEMA 8
Programacin orientada a objetos.
Objetos. Clases. Herencia. Polimorfismo. Lenguajes
1- Programacin orientada a objetos.
1.1 definicin
Esta programacin se basa en la programacin estructurada a lo
que le aade el concepto de objeto. Un objeto es un conjunto de
datos junto a los funciones para manejar esos datos.
1.2 Evolucin histrica
a) En Una primera etapa se programaba a bajo nivel, con
lenguaje maquina y ensamblador.
b) Surgen los lenguajes estructurados y la programacin modular.
Se crean lenguajes de alto nivel.
c) Surgen los conceptos de abstraccin de datos y de
encapsulamiento.
d) Surgen los primeros lenguajes orientados a objetos, como
smaltalk.
1.3 Elementos y caractersticas principales.
a) El programador crea tantas clasificaciones como necesite
b) A partir de las clases se crean objetos, que consisten en datos
unidos a las funciones para manejarlos.
c) Entre las clases se pueden transmitir caractersticas usando la
herencia.
1.4 Ventajas de la P.O.O.
- Proteccin de la informacin: los datos que forman los objetos
estn protegidos y no puede acceder cualquiera a ellos.
- Rpido desarrollos. Se puede llamar a clases que se encuentran
en libreras y de este modo no hay que volver a escribir su
cdigo.
- Fcil mantenimiento: solo hay que modificar la clase que me
interese y el resto de clases no se ven afectadas, o bien crean
clases nuevas.

3 de 11

F.PR.

Alfredo Pamos Garrido

2- Objetos
2.1 Definicin
Consisten en un conjunto de datos (variables,) junto con un
conjunto de funciones que manejan solo a esos datos. Los objetos
son entes dinmicos que solo existen en la memoria del ordenador
mientras el programa se est ejecutando.
2.2 Estructura

Funciones
Procedimientos
Mtodos
Interfaz

DATOS
(VARIABLES,
ETC)
PROPIEDADES
CAMPOS

estado

2.3 Propiedades
- Encapsulacin de informacin: Consiste en agrupas datos y las
funciones que manejan esos datos bajo un mismo nombre y
que solo accedan a los datos a aquellos a los que el
programador se lo permita.
- Polimorfismo: Consiste en utilizar el mismo nombre de
funcin o procedimiento para hacer tareas diferentes. Cuando
esta caracterstica se aplica a operadores se llama sobre carga
de operadores.
- Herencia: Esta se aplica solo a clases y consiste en crear
nuevas clases utilizando caractersticas de otras clases que ya
existen.
- Ligadura dinmica: Consiste en que hasta el tiempo de
ejecucin no se asocia la llamada a la funcin con el cdigo
que se va a ejecutar.

4 de 11

F.PR.

Alfredo Pamos Garrido

2.4 Encapsulacin
Encapsular consiste en agrupar bajo un mismo nombre datos junto a
sus mtodos.
2.5 Envo de mensajes
Un mensaje es la manera de pedir a un objeto que ejecute uno de sus
mtodos.
Objetos accin < objeto>
Aclaracin de objeto entre <> : <objetos como parmetro>
Ejemplo v1.CompareTo(v2)
3 + 4
El objeto al que se le manda el mensaje ejecuta la accin
correspondiente y como resultado obtiene un valor. Comprueba si el
que le a mandado el mensaje tiene permiso para acceder al valor
correspondiente, si es as se lo manda y si no se as le enva un
mensaje de error.

5 de 11

F.PR.

Alfredo Pamos Garrido

3 Clases
3.1 Definicin
Una clase es un molde o plantilla que nos sirve para crear las
instrucciones, que son los objetos.
Las clases equivaldran a los tipos de datos y los objetos a
variables pertenecientes a esos tipos.
La clase est formada por cdigo escrito en el programa
fuente. Los objetos son entes dinmicos que solo existen
durante la ejecucin del programa.
3.2 Principios bsicos
a) las clases son plantillas a partir de los que puedo crear
tantos objetos como desee.
b) Todos los objetos de la misma clase tienen los mismos
mtodos y variables, pero con valores diferentes.
c) Las clases no son utilidades directamente sino que son solo
los moldes para construir los objetos.
3.3 Caractersticas
a) - Identificador
b) - Datos (variables, ctes, etc) ! propiedades, campos
- Funciones, procedimientos! mtodos
c) - Niveles de acceso
Private: a estos elementos solo acceden los miembros que
pertenecen a su misma clase.
Protected: a estos elementos acceden, adems de los de su
misma clase, los de las clases que heredan de l.
Public: a estos elementos se pueden acceder desde
cualquier parte.

6 de 11

F.PR.

Alfredo Pamos Garrido

4 Polimorfismo
Consiste en un mismo nombre de funcin que lo utilizamos para
funciones que hacen cosas diferentes, si se le aplican a los
operadores se les llama sobrecarga de operadores.
Ejemplo:
Int funcion (int a)
{
- - - -- }
int funcion (string a)
{
-- - --- - - }
int funcion ()
{
---- -- - - }
Ejemplo 2:
+ ! 2+3 = 5
2.0 + 3.0 = 5.0
buenos + dias = buenos dias

7 de 11

F.PR.

Alfredo Pamos Garrido

5 La herencia
5.1 Definicin
La herencia consiste en crear una nueva clase cogiendo
caractersticas de otras clases que ya existen.
5.2 Tipos de Herencia
Hay 3 formas de crear nuevas clase a partir de otras existentes:
- Imitacin: Consiste en crear nuevas clases a partir de
otras existentes.
- Refinamiento: Consiste en a partir de de una clase
padre coger de esta los datos que me interesen y
centrndome en las caractersticas de la nueva clase.
- Combinacin: Consiste en coger cosas de otras clases,
las mezclo y con todos ellas formo una nueva clase.

8 de 11

F.PR.

Alfredo Pamos Garrido

Clasificacin por el nmero de padres:


1) Herencia simple:
Consiste en que las clases tienen cada una un nico
padre.
Ejemplo: Smalltalk, Java, C#.
2) Herencia mltiple:
Cada clase puede tener un padre o ms de uno.
Ejemplo: C++, Eiffel.
3) Herencia repetida:
Seria una mezcla entre las dos anteriores. Una clase
hereda de una clase por dos sitios diferentes.
4) Herencia selectiva:
Es un tipo de herencia que te permite heredar los
atributos y los mtodos que a ti te interesan.
5) Herencia dinmica:
Hay dos clases y de la clase hija se crea un objeto. Con
esta herencia podemos hacer que el objeto que hemos
creado podemos modificar la clase padre.
Otra clasificacin: por el n de jerarquas.
-

Monojerarquica: Hay una sola clase raz y todas las


dems clases heredan de ella.
Ejemplo: Smalltalk, Java, C#.

Plurijerarquica: Hay tantos rboles jerrquicos como


quieras y puede haber clases que no tengan padre.
Ejemplos: C++, Eiffel.

9 de 11

F.PR.

Alfredo Pamos Garrido

6) Enlace o ligadura dinmica


Consiste en que hasta el momento de la ejecucin no se enlaza la
llamada al mtodo con el cdigo que vamos a ejecutar. Hasta el
tiempo de ejecucin no se sabe.
Sin la ligadura dinmica seria imposible la herencia y el
polimorfismo.
a) Resolucin en tiempo de compilacin del polimorfismo.
Resolucin del polimorfismo en tiempo de compilacin
Ejemplo:
Class clase1
{
mtodo (int a)
mtodo (flota b)
mtodo (string c)
}

Si tengo que llamar a


alguno de ellos lo distingue
por el parmetro.

b) Resolucin de la herencia en tiempo de ejecucin


Se resuelve mediante funciones virtuales.
Class clase2
{
mtodo (int a)
}
class clase 3
{
mtodo (int a)
}
class clase 4
{
main ()
{
clase 2 obj1 = new clase2()
clase 3 obj2 = new clase3()
obj1.metodo(a)
}
}

10 de 11

En este caso lo
resuelve al llamar
a la funcin; como
tiene iguales
mtodos la llama
por el nombre de
la clase
(que ha tenido que
crear un objeto de
la clase xq no
puede llamar
directamente a la
clase

F.PR.

Alfredo Pamos Garrido

7 Eventos
Es un hecho que ocurre y el sistema es capaz de reconocerlo. Si el
programador ha puesto cdigo a ese evento, entonces cuando ocurra
el evento ese cdigo se ejecutara, si no ocurre un evento ese cdigo
no se ejecuta.
8 Lenguajes
8.1 Lenguajes puros orientados a objetos
Vienen de un lenguaje anterior llamado Simula y a partir de el
surgieron otros que si se utilizan como Smalltalk, Eiffel, Java.
Smalltalk fue el primer lenguaje totalmente orientado a objetos
Eiffel es totalmente orientado a objetos y tienes muchas cosas
compatibles con C.
Java es muy utilizado por que es un lenguaje que con l,
adems de todo lo que hacen los dems, hace apples para
ejecutarlos en paginas web.
8.2 Lenguajes derivados de otros lenguajes
En principio no eran orientados a objetos pero se le acoplaron
cosas para que fueran orientados a objetos.
Ada, Mdula, C++.
Caractersticas de c++ y c#
1) Para crear objetos utilizan constructor y destructor.
2) Las clases tienen que estar encapsuladas y tienen niveles de
acceso.
3) Utilizan el polimorfismo y sobrecarga de operadores.
4) Ligadura dinmica.
5) Herencia simple para C# y mltiple para C++.
6) Utilizacin de excepciones para controlar los errores.

11 de 11

You might also like