PDF de programación - Curso de Orientación a Objetos

Imágen de pdf Curso de Orientación a Objetos

Curso de Orientación a Objetosgráfica de visualizaciones

Publicado el 14 de Enero del 2017
1.056 visualizaciones desde el 14 de Enero del 2017
317,5 KB
11 paginas
Creado hace 12a (31/01/2012)
Programación Orientada a Objetos

Conceptos teóricos

2.2.- Paradigmas de la POO



 Los principios propios de la orientación a objetos



son:

– 2.2.1.- Abstracción de Datos

– 2.2.2.- Encapsulamiento

– 2.2.3.- Ocultamiento

– 2.2.4.- Herencia

– 2.2.5.- Polimorfismo

 Cualquier lenguaje POO tiene que poseer estos

conceptos.

David Contreras Bárcena - ICAI

57

2.2.- Abstracción



 Visión de un problema que extrae la información

esencial para un determinado propósito, omitiendo
los detalles menos significativos.



 Puede existir diferentes niveles de abstracción.

 Existe dos tipos:

– Funcional

– De datos

 Un objeto es una abstracción de la realidad.

David Contreras Bárcena - ICAI

58

Programación Orientada a Objetos

Conceptos teóricos

2.2.- Encapsulamiento

 Es un agrupamiento bajo un mismo nombre
de la información y las operaciones que acceden


a ella .


 Materializa la abstracción. Los objetos son


encapsulaciones de abstracciones.

 Paquete de información y operaciones.

hora
día

numSerie
modelo

David Contreras Bárcena - ICAI

59

2.2.- Ocultamiento de la Información


 Principio por el cual solo es accesible el interfaz


del objeto.

 Los métodos no son utilizados por su


implementación (contenido), sino por su interfaz
(aspecto).

 Concepto complementado con el de

encapsulamiento.

 Objetivo final: Restringir el acceso a los métodos.



NOTA: Para más información acerca de ocultamiento consultar el manual de Java. (pág 103)

David Contreras Bárcena - ICAI

60

Programación Orientada a Objetos

Conceptos teóricos

2.2.- Ocultamiento de la Información


 En java se consigue gracias a los modificadores


de acceso.

 Estos pueden afectar a la clase, a los atributos


y/o métodos.

 Modificadores:

– public: Objetos de todas las clases pueden acceder al

método con este modificador.

– protected: Sólo objetos de las clases heredadas y las

del paquete.

– (defecto): Sólo objetos de las clases del paquete.

– private: Sólo objetos de la misma clase.

David Contreras Bárcena - ICAI

61

2.2.- Herencia



 La herencia permite crear una clase nueva que



tenga el mismo comportamiento que otra, y
además extienda o adapte ese comportamiento a
unas necesidades específicas.

 Permite especializar o refinar una clase, y/o

generalizar conceptos de otras clase ya existentes.

 En la especialización, la nueva clase creada

tomará o heredará los atributos y métodos de la
clase padre, los cuales se añadirán a los definidos
por la propia clase.



David Contreras Bárcena - ICAI

62

Programación Orientada a Objetos

Conceptos teóricos

2.2.- Herencia



Dicha fábrica desea
sacar al mercado un
nuevo modelo de reloj

con cronómetro

Definiremos la nueva
clase con las nuevas
características que
introduce al reloj ya

existente

inicicializarCrono

Las instancias que
creemos de la clase
RelojCrono tendrán

como datos y métodos
los de la clase Reloj y
63

los de su clase



Nos piden crear un

modelo informático de
una fábrica de relojes.
Su modelo de reloj es
único: solo muestra la


hora y el día

mostrarMarca

Clase Reloj

marca

--

hora
día

traducirFrecuencia

numSerie

mostrarDía

incrementarDía:

limpiarPantalla

mostrarHora

Para ello, diseñaremos
este nuevo modelo de
reloj apoyándonos en el
concepto de herencia, el

cual nos permite la

reutilización de software

HERENCIA

Clase RelojCrono

cronoHora
cronoMin
cronSeg

mostrarCrono

activarCrono

David Contreras Bárcena - ICAI

2.2.- Herencia

class Reloj

//atributos

static String MARCA; //atributo de clase

String hora; //Tomamos un tipo String para simplificar

String dia; //idem

int numSerie;

//métodos



...

{



}



class RelojCrono extends Reloj

{



}

//atributos

int cronoHora;

int cronoMin;

int cronSeg;

//métodos



...

Únicamente se definen los atributos y
métodos que añaden o refinan el
comportamiento.

Las ocurrencias de la clase RelojCrono
dispondrán de los atributos y métodos
definidos en su clase más los de la clase
padre.

David Contreras Bárcena - ICAI

64

Programación Orientada a Objetos

Conceptos teóricos

2.2.- Herencia Múltiple



 Se da este concepto cuando una clase hereda de



varias superclases. La mayoría de los lenguajes no
soportan esta característica.

Clase

MAMIFERO

Clase

HOMBRE

Clase
LOBO

Clase

HOMBRE

LOBO

David Contreras Bárcena - ICAI

65

2.2.- Polimorfismo



 Consiste en utilizar un mismo símbolo para fines



distintos.

 Respuesta distinta frente a un mensaje



dependiendo de la naturaleza del objeto.



David Contreras Bárcena - ICAI

66

Programación Orientada a Objetos

Conceptos teóricos

2.2.- Polimorfismo



 Supongamos que tenemos relojes, uno analógico y otro



digital. Cada reloj tiene un método para adelantar una hora.
No tiene ningún sentido que si los dos hacen lo mismo
(cada uno a su manera), se tenga que llamar con nombres
distintos. Cada vez que invoquemos el método
adelantarHora de cada reloj, cada uno lo hará a su
manera.

 Tenemos distintos objetos gráficos (cuadrados,

circunferencias, triángulos,...) y todos tienen un método
pintar. Cuando yo lance un mensaje sobre cada objeto
invocando el método pintar, cada uno se pintará a su
manera.

David Contreras Bárcena - ICAI

67

2.2.- Polimorfismo en la herencia:
Redefinición



 Cuando se crea una clase heredada de una



superclase, heredará todos los métodos.



 Si la implementación de uno de los métodos no se

ajusta al comportamiento de la nueva clase, se
podrá variar dicha implementación.

 Se dice entonces que se está redefiniendo el

método.

 Habrá que diferenciar esta idea del concepto de

sobrecarga. Se dice que se está sobrecargando un
método cuando se define otro con el mismo
nombre pero con argumentos diferentes.

68

David Contreras Bárcena - ICAI

Programación Orientada a Objetos

Conceptos teóricos

2.2.- Polimorfismo en la herencia:
Redefinición



 Cuando el polimorfismo se produce entre las clases



heredadas, los mensajes son tratados de la siguiente forma:



A
A

pintar()

pintar

B


C



miC es una

ocurrencia

de la clase C



A

pintar()

B

pintar()

C
C

pintar()

pintar

miC.pintar();

miC.pintar();

David Contreras Bárcena - ICAI

69

2.2.- Clases Abstractas



 Las clases abstractas son aquellas que se utilizan



en la herencia y sólo las utilizaremos para que
definan el interfaz (qué hacen) y/o la
implementación (cómo lo hacen) de las clases
heredadas.

 No se podrá crear ocurrencias de ellas. Se utilizan

para que las características de esta clase estén
disponibles para sus clases heredadas.

 Es una forma de generalizar un comportamiento y,

por lo tanto, reutilizar código.



David Contreras Bárcena - ICAI

70

Programación Orientada a Objetos

Conceptos teóricos

2.2.- Paradigmas de la POO - Clases
Abstractas



 Supongamos que queremos modelizar todos los

vehículos a motor (coches, motos, lanchas, ...).



VehículosAMotor

 ¿Existe en la vida real algún
objeto que sea un vehículo a
motor? NO

herencia

 Existen coches , motos, etc...

 La clase VehiculosAMotor

Coches

Motos

NOTA: Para ver ejemplos en JAVA. (pág 73)

nos servirá para reutilizar sus
métodos y datos, pero no
para crear ocurrencias de
ella.
David Contreras Bárcena - ICAI

Lanchas

71



2.2.- Paradigmas de la POO - Clases
Abstractas - Interfaz

 Las clases abstractas nos presentarán el interfaz, es
decir, a qué métodos son capaces de responder las
ocurrencias de sus clases heredadas.



 La implementación de ese interfaz podrá estar
definida en la clase abstracta o en la subclase.

 Si una clase abstracta sólo define el interfaz, se
dice que es una clase abstracta pura (en Java se
denominan interfaces).

 Se permite la herencia múltiple de clases

interfaces.

David Contreras Bárcena - ICAI

72

Programación Orientada a Objetos

Conceptos teóricos

2.2.- Paradigmas de la POO - Clases
Abstractas - Clases y tipos



 Se habla que una clase define la clase o el tipo...



– Clase, cuando se defina cómo se implementa el objeto

(estado interno y operaciones).

– Tipo, cuando se haga referencia solamente a su interfaz,

conjunto de peticiones a las que puede responder.

 Por lo tanto, la clase define también el tipo de

objeto.

David Contreras Bárcena - ICAI

73

2.2.- Paradigmas de la POO - Clases
Abstractas - Clases y tipos



 Se podrá hablar también de herencia de clase y tipo:



– Herencia de Clase: Mecanismo para compartir código y

representación (comportamiento).

– Herencia de Tipo: Un objeto puede ser usado en lugar
de otro, ya que define lo que hace y no cómo lo hace. La
herencia de tipo tiene que llevar asociado el concepto de
polimorfismo en la herencia, ya que si sólo se define lo
que va a hacer, alguna clase tendrá que redefinir dicho
método e implementarlo. Estos métodos deberán ser
definidos como abstractos.



David Contreras Bárcena - ICAI

74

Programación Orientada a Objetos

Conceptos teóricos

2.2.- Paradigmas de la POO - Clases
Abstractas - Clases y tipos


 Si nos basamos en la herencia de tipo, vemos que podemos
utilizar objetos en lugar de otros (define lo que va a hacer,

pero no cómo).


Clase Abstracta Pura

 Yo podré referirme a la clase

(sólo interfaz)

abstracta, aun cuando desee

VehículosAMotor



referirme a alguno de sus hijos.

 La clase abstracta se utiliza en



lugar de las clases heredadas.

 Estos conceptos se aclararán

Herencia de tipo

cuando se vea el diseño (DOO).

Coches Motos

Lanchas



NOTA: Para ver ejemplos en JAVA. (p
  • Links de descarga
http://lwp-l.com/pdf592

Comentarios de: Curso de Orientación a Objetos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad