Agenda Introduccin Encapsulamiento Herencia Polimorfismo Introduccin En el paradigma POO, un objeto es una unidad dentro de un programa de computadora que consta de un estado y de un comportamiento, que a su vez constan respectivamente de datos almacenados y de tareas realizables durante el tiempo de ejecucin. Un objeto puede ser creado instanciando una clase, como ocurre en la programacin orientada a objetos, o mediante escritura directa de cdigo y la replicacin otros objetos, como ocurre en la programacin basada en prototipos Encapsulamiento Java, como un lenguaje orientado a objetos, implementa la encapsulacin. Este concepto consiste en la ocultacin del estado o de los datos miembro de un objeto, de forma que slo es posible modificar los mismos mediante los mtodos definidos para dicho objeto. Cada objeto est aislado del exterior, de forma que la aplicacin es un conjunto de objetos que colaboran entre s mediante el paso de mensajes invocando sus operaciones o mtodos Encapsulamiento Caso: Imaginemos que se crea una clase, 10 programadores tienen acceso a dicha clase y la utilizan a discrecin, posteriormente dicha clase comienza a comportarse de una manera inesperada debido a que los valores que algunas variables han tomado no fueron anticipados y todo comienza a desmoronarse Encapsulamiento Si se desea flexibilidad, buen mantenimiento y extensibilidad, nuestro diseo en el cdigo debe de incluir encapsulamiento, para ello debemos de hacer lo siguiente: Mantener las variables de instancia protegidas (puede ser con un modificador de acceso private) Hacer mtodos de acceso pblicos para forzar al acceso a las variables por medio de dichos mtodos en lugar de acceder directamente. Utilizar las convenciones de cdigo para los nombres de los mtodos. (set y get) Encapsulamiento En el mtodo setTipo() no existen validaciones El proveer de un mtodo de este tipo desde el diseo inicial de la aplicacin nos permite posteriormente modificar el comportamiento de la misma sin afectar los mtodos utilizados. Herencia La herencia es una caracterstica de los lenguajes orientados a objetos la cual nos da la posibilidad de reutilizar codigo, esto es definir una clase a partir de otra clase comn Ejm. Supongamos que tenemos la necesidad de registrar caractersticas y funciones de Empleados y Clientes en un programa cualquiera, nos damos cuenta que tanto empleados como clientes comparten muchas caractersticas en comn, nombre direccin edad etc., y seria tonto definirlas en ambas clases, por lo que creamos una clase que comparta sus caractersticas comunes (variables y metodos) y luego a partir de esa clase creamos las dems. Herencia Cuando existe una relacin de herencia entre diversas clases y se crea un objeto de una subclase S, se ejecuta no slo el constructor de S sino tambin el de todas las superclases de S. Para ello se ejecuta en primer lugar el constructor de la clase que ocupa el nivel ms alto en la jerarqua de herencia y se contina de forma ordenada con el resto de las subclases. Es posible que una misma clase tenga ms de un constructor (sobrecarga del constructor), Muchas Gracias.. Ing. Wilmer Richard Perfecto Manrique