universidad latina (unila)

24
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA

Upload: akeem-graves

Post on 02-Jan-2016

42 views

Category:

Documents


0 download

DESCRIPTION

UNIVERSIDAD LATINA (UNILA). ENCAPSULACION Y HERENCIA. Introducción. La programación orientada a objetos también nos permite proteger a la información a través del encapsulamiento. Que es encapsulamiento. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: UNIVERSIDAD LATINA (UNILA)

LE, EI, Profesor Ramón Castro Liceaga

UNIVERSIDAD LATINA (UNILA)

ENCAPSULACION Y HERENCIA

Page 2: UNIVERSIDAD LATINA (UNILA)

Introducción

• La programación orientada a objetos también nos permite proteger a la información a través del encapsulamiento

Page 3: UNIVERSIDAD LATINA (UNILA)

Que es encapsulamiento

• Se denomina encapsulamiento al ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas para ese objeto.

Page 4: UNIVERSIDAD LATINA (UNILA)

Servicios prestados

• Se trata de proteger los datos en una clase. La encapsulación se basa en la noción de servicios prestados.

Page 5: UNIVERSIDAD LATINA (UNILA)

Niveles de encapsulado

• Java proporciona varios niveles de encapsulado. La granularidad de la protección es para el método o el atributo. Así, tal atributo podrá ser protegido, mientras que otro no lo será.

Page 6: UNIVERSIDAD LATINA (UNILA)

Protección de variables y métodos: accesos

• Para implementar el encapsulamiento de las clases Java utilizan:

public Si un método o variable se define así, será accesible para cualquier otra clase (cualquiera accesarla) package Solo el que especifique el paquete de clases de que trate private Solo son visibles en la propia clase protected Publico para sus clases derivadas únicamente Estos son especificadores de acceso preceden a las definiciones de las clases

Page 7: UNIVERSIDAD LATINA (UNILA)

Herencia

• La herencia es una de las nociones mas importantes del diseño y de la programación orientada a objetos. Es uno de los factores que permiten la reutilización del código.

Page 8: UNIVERSIDAD LATINA (UNILA)

Que es la herencia

• Como su nombre lo indica es la capacidad de heredar las capacidades, funcionalidad y características entre las clases

• La Herencia es el mecanismo por el que se crean nuevos objetos definidos en términos de objetos ya existentes.

Por ejemplo, si se tiene la clase Ave, se puede crear la subclase Pato, que es una especialización de Ave.

class Pato extends Ave { int numero_de_patas; }}

Page 9: UNIVERSIDAD LATINA (UNILA)

Palabra clave extends (extiende a..)

• La herencia es una relación entre clases definida por la palabra clave extends. Si se dice que una clase Hija, hereda de una clase Madre, quiere decir que éste asimila los atributos y métodos del Madre y que un objeto de la clase Hija es también de la clase Madre. Esto último, no es recíproco, es decir, un objeto de la clase Madre no lo es de la clase Hija.

Page 10: UNIVERSIDAD LATINA (UNILA)

Propósitos de la herenciaLa herencia, tiene el propósito de: • Compatir el código, el cual permite una

economía de compilación, de disco duro.... • Mantenimiento en el código, cualquier

modificación en la clase Madre repercute automáticamente sobre la clase Hija.

La herencia permite heredar las propiedades y las características entre clases

Page 11: UNIVERSIDAD LATINA (UNILA)

Herencia y subclase

• La clase que hereda, llamada también subclase, retoma los atributos y los métodos de la superclase.

Pero puede: · añadirles nuevos atributos y métodos. · redifinir los métodos.

Page 12: UNIVERSIDAD LATINA (UNILA)

Herencia y abstracción

La herencia, además, La herencia, además, permite capturar nuevas formas permite capturar nuevas formas de abstracción, es decir, gracias a ésta, se puede de abstracción, es decir, gracias a ésta, se puede expresar formalmente ideas que provienen del nivel expresar formalmente ideas que provienen del nivel de diseñode diseño. .

Page 13: UNIVERSIDAD LATINA (UNILA)

Herencia y Herencia y redefinición de métodosredefinición de métodos

• Cuando se hace heredar una clase de otra, se Cuando se hace heredar una clase de otra, se pueden redefinir ciertos métodos con la pueden redefinir ciertos métodos con la intención de modificarlos o mejorarlosintención de modificarlos o mejorarlos. El . El método método lleva el mismo nombre y la misma lleva el mismo nombre y la misma sintaxis, pero sólo se aplica a los objetos de la sintaxis, pero sólo se aplica a los objetos de la subclase o a sus descendientessubclase o a sus descendientes. .

Page 14: UNIVERSIDAD LATINA (UNILA)

Que entendemos por Herencia Simple

• Si una clase hereda de la otra, lo que hereda son todos sus atributos y metodos. Ademas de heredarlos puede sobreescribirlos, tanto los constructores-destructores como los metodos convencionales.

• En la herencia simple se pueden heredar estos comportamientos y características solo de una superclase

• ..

Page 15: UNIVERSIDAD LATINA (UNILA)

Java y la Herencia Simple

• Un ejemplo de Herencia Simple es la estructura es el propio lenguaje Java

• Java está completamente orientado a objetos bajo el concepto de la Herencia.

Page 16: UNIVERSIDAD LATINA (UNILA)

La superclase de Java La superclase de Java

• La claseLa clase Object Object es la superclase de Javaes la superclase de Java

Page 17: UNIVERSIDAD LATINA (UNILA)

Principales clases de Java Principales clases de Java

• El paquete Java java.lang contiene clases fundamentales e interfaces fuertemente relacionadas con el lenguaje y el sistema runtime

Page 18: UNIVERSIDAD LATINA (UNILA)

En resumen

• La Herencia Simple consiste en heredar comportamientos y características de una SuperClase en el caso de Java es Object

Page 19: UNIVERSIDAD LATINA (UNILA)

Que entendemos por Herencia Múltiple

• Herencia múltiple hace referencia a una característica de los lenguajes de programación orientada a objetos en la que una clase puede heredar comportamientos y características de más de una superclase..

Page 20: UNIVERSIDAD LATINA (UNILA)

Java y la Herencia MultipleJava y la Herencia Multiple

• En Java no existe la herencia múltiple. El motivo es que definir una herencia múltiple presenta numerosos problemas.

Page 21: UNIVERSIDAD LATINA (UNILA)

Java y la Herencia Multiple

Se presentan los siguientes problemas: Se presentan los siguientes problemas:

Page 22: UNIVERSIDAD LATINA (UNILA)

Lenguajes que soportan Herencia MultipleLenguajes que soportan Herencia Multiple

• Lenguajes que soportan herencia múltiple en su mayor parte son: C++, Centura SQL Windows, CLOS, Eiffel, Object REXX, Perl y Python.

Page 23: UNIVERSIDAD LATINA (UNILA)

Discusión sobre Herencia Simple y MultipleDiscusión sobre Herencia Simple y Multiple

• Hay debate sobre si la herencia múltiple Hay debate sobre si la herencia múltiple puede ser implementada de forma simple y puede ser implementada de forma simple y sin ambigüedad. sin ambigüedad. Con frecuencia es criticada por su aumentada complejidad y su ambigüedad, así como los problemas de versiones y mantenimiento que puede causar

Page 24: UNIVERSIDAD LATINA (UNILA)

ConclusiónConclusión

• La Herencia Multiple La Herencia Multiple consiste en heredar consiste en heredar comportamientos y características de mas de comportamientos y características de mas de una SuperClase, esta funcionabilidad no la una SuperClase, esta funcionabilidad no la tienen todos los lenguajes de programación tienen todos los lenguajes de programación orientados a objetosorientados a objetos