Encapsulamiento

  • Uploaded by: lenin mazaquiza
  • 0
  • 0
  • August 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Encapsulamiento as PDF for free.

More details

  • Words: 935
  • Pages: 5
UNIVERSIDAD TÉCNICA DE AMBATO

FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL

PERÍODO ACADÉMICO: SEPTIEMBRE 2017 – FEBRERO 2018

“PROGRAMACIÓN II” SEGUNDO NIVEL

Nombre: Lenin Mazaquiza Docente: Ing. Cesar Granizo

AMBATO - ECUADOR

2017

UNIVERSIDAD TÉCNICA DE AMBATO

FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL

PERÍODO ACADÉMICO: SEPTIEMBRE 2017 – FEBRERO 2018

Encapsulamiento

Java, como un lenguaje orientado a objetos, implementa la encapsulación. Este concepto consiste en la ocultación del estado o de los datos miembro de un objeto, de forma que sólo es posible modificar los mismos mediante los métodos definidos para dicho objeto. Cada objeto está aislado del exterior, de forma que la aplicación es un conjunto de objetos que colaboran entre sí mediante el paso de mensajes invocando sus operaciones o métodos. De esta forma, los detalles de implementación permanecen "ocultos" a las personas que usan las clases, evitando así modificaciones o accesos indebidos a los datos que almacenan las clases. [1] Además, el usuario de la clase no se tiene que preocupar de cómo están implementados los métodos y propiedades, concentrándose sólo en cómo debe usarlos. La encapsulación es una de las principales ventajas que proporciona la programación orientada a objetos. [1] Ejemplo Imaginemos que se crea una clase, una docena de programadores tienen acceso a dicha clase y la utilizan a discreción, 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. Para corregir el problema se crea una versión más nueva de dicha clase y listo. [2] Bueno, a esto le llamamos flexibilidad y capacidad de mantenimiento, ambas son características y beneficios de la programación Orientada a Objetos (OO) pero para que una clase pueda cumplir dichas funciones los programadores debemos de hacer algo. Imaginemos que creamos una clase con variables de instancia públicas a las cuales podemos acceder sin problemas desde fuera de la misma clase...

UNIVERSIDAD TÉCNICA DE AMBATO

FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL

PERÍODO ACADÉMICO: SEPTIEMBRE 2017 – FEBRERO 2018

Analizando el código anterior podemos darnos cuenta de que las variables enteras tipo y clase son públicas y pueden ser accedidas directamente a través de una instancia de la clase MiClase, esto compila sin ningún problema, digamos que es 'legal', sin embargo, ¿qué pasa si ingresamos un valor que no se supone debe de tener una variable (en este caso el -5 que le asignamos a tipo)?, simplemente no hay nada que nos detenga para hacerlo. La única manera de proteger el código es escribiendo un método que nos permita regular los valores que cada variable puede tener y escondiendo las variables para que no se pueda acceder a ellas de manera directa, esto es el principio básico de encapsulamiento. Si se desea flexibilidad, buen mantenimiento y extensibilidad, nuestro diseño en el código debe de incluir encapsulamiento, para ello debemos de hacer lo siguiente: 1. Mantener las variables de instancia protegidas (puede ser con un modificador de acceso, p.ej., private). 2. Hacer métodos de acceso públicos para forzar al acceso a las variables por medio de dichos métodos en lugar de acceder directamente. 3. Utilizar las convenciones de código para los nombres de los métodos, p. ej., set y get. El ejemplo anterior modificado para un buen encapsulamiento quedaría así:

UNIVERSIDAD TÉCNICA DE AMBATO

FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL

PERÍODO ACADÉMICO: SEPTIEMBRE 2017 – FEBRERO 2018

Si nos fijamos un poquito, en el método setTipo() no existen validaciones para prevenir que un valor no válido sea asignado a la variable, sin embargo, el proveer de un método de este tipo desde el diseño inicial de la aplicación nos permite posteriormente modificar el comportamiento de la misma sin afectar los métodos utilizados, tal vez en un futuro se desee que dicha variable solamente pueda tener uno entre un rango de valores y se podrán aplicar posteriormente los cambios sin que haya repercusiones negativas. [2] Como java es un lenguaje de programación orientado a objetos, existen en un programa, diversos atributos y métodos que servirán para el funcionamiento de éste. Para la interacción del usuario con el objeto es necesario que se apliquen, o se encuentren disponibles, solo aquellos métodos que le servirán al usuario para utilizar ese objeto, manteniendo “ocultos” aquellos que servirán para el funcionamiento interno. [3]

UNIVERSIDAD TÉCNICA DE AMBATO

FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL

PERÍODO ACADÉMICO: SEPTIEMBRE 2017 – FEBRERO 2018

Es por ello que el encapsulamiento consiste en permitir la visibilidad de atributos y/o métodos, en una clase determinada, teniendo así tres niveles de: privados (private) que se utilizaran solo en esa clase, protegidos (protected) que se utilizaran por todas los métodos, clases y /o atributos mientras se encuentre en el mismo package, y los públicos (public) que pueden ser usados por cualquier clase o método. [3] Un ejemplo de encapsulamiento aplicado a objetos es una lavadora, donde el usuario solo se le ofrece la posibilidad de programar; el nivel de llenado del estanque, su funcionalidad (lavar, centrifugar, secar), encendido o apagado, como funciones principales. Pero para funcionamiento interno, no se requiere saber cuál es el método para cambiar de estanque lleno a vaciado y posterior centrifugado, etc. De esta manera se hace más fácil el uso de la lavadora para el usuario.

Trabajos citados [1] P. Herrera, «wikibooks,» 06 mayo 2012. [En línea]. Available: https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Encapsulamiento. [Último acceso: 30 noviembre 2017]. [2] A. Roldan, «http://www.ciberaula.com/articulo/encapsulacion_java,» 14 enero 2011. [En línea]. Available: http://www.ciberaula.com/articulo/encapsulacion_java. [Último acceso: 30 noviembre 2017]. [3] E. Lobel, «conceptos de java,» 24 julio 2013. [En línea]. Available: https://sites.google.com/site/conceptosdejava/home/encapsulamiento-en-java. [Último acceso: noviembre 30 2017].

Related Documents

Encapsulamiento
November 2019 3
Encapsulamiento
August 2019 11

More Documents from "lenin mazaquiza"