Encapsulamiento Miguel Ángel Rojas Aguilar Esthela Carmina Carranza Cabrera.

Slides:



Advertisements
Presentaciones similares
Programación orientada a objetos en Visual Basic .NET
Advertisements

Java nos ofrece System.out para escribir en pantalla, pero también tenemos System.in para leer. System.in es un objeto de una clase de java que se llama.
Estructura de Datos Unidad 4. Recursividad Dra. María Lucía Barrón Estrada Enero-Junio 2007.
POLIMORFISMO "una interfaz, múltiples métodos".
Arquitectura CLARO-TECNOTREE
Modularidad Estructura de datos.
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
El proceso de desarrollo de software
1.1 Concepto de Tipo de Datos Abstracto.
Lección 1 Introducción a la POO
Lección 2 Encapsulamiento
Tipo de Dato Abstracto Tipos de datos:
Aplicación del paradigma orientado a objetos
PROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA
Encapsulamiento y Abstracción
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
/*Desarrollar una solución que permita ingresar y almacenar el promedio de prácticas, la nota del examen parcial y la nota del examen final de todos.
El concepto de clase Con frecuencia un término puede definirse de diferentes maneras según el enfoque. Desde el punto de vista del análisis y el diseño.
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Material de apoyo Unidad 2 Estructura de datos
TALLER DE PROGRAMACIÓN III
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
Abstracción de los datos y Orientación a Objeto Clase 13.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Licenciatura en Ciencias.
Tema 6: Clases Antonio J. Sierra.
Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje
Tema 10: Interfaces Antonio J. Sierra.
Public class MiClase { public static int tmp = 123; // miembro variable public static final double PI = ;// miembro constante public float.
Igor Santos Grueiro. Ahora tenemos datos y datos …
Clase Teórica No. 4 Programación IV
Patrón Observador Un patrón de diseño es una descripción de clases y objetos comunicándose entre si adaptada para resolver un problema de diseño general.
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
Programación Orientada a Aspectos (POA)
Capítulo 1 “Elementos de Programación”
Patrones Creacionales
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Computación II Repaso de java Karina Figueroa Mora.
Control de errores visual basic
Programación avanzada en Java Miguel Ángel Corella 23 de Septiembre de 2005.
Manejo de Punteros y objetos en memoria dinámica en C++
Patrones de Diseño Carolina Perozo Julio Padrón Anthony Accardi.
Módulo 7: Programación Orientada a Objetos en Visual Basic 2005.
PATRON PROTOTYPE Cristina Merino Héctor Carbajo Alicia Arroyo.
Programación avanzada en Java Miguel Ángel Corella 26 de Septiembre de 2005.
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) CONCEPTOS DE PROGRAMACION.
PROGRAMACION ORIENTADA A OBJETOS POR OVER YESID BARRERA FERNANDEZ.
Facultad de Ingeniería
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
TEMA 9: DIAGRAMA DE CLASE EN UML
Programación Orientada a Objeto
1 Asignación Dinámica de Memoria Agustín J. González ELO 329.
PROGRAMACIÓN ORIENTADA A OBJETOS. introducción La unidad sobre Programación Orientada a Objetos, se centrará sobre sus definiciones y el pilar inicial:
TIPOS DE PRUEBAS DEL SOFTWARE
Ing. Esp. Ricardo Cujar. Programación Orientada a Objetos  Modelo de desarrollo de software.  Modo de pensar del hombre y no de la máquina.  Abstracción.
Capítulo 2 “Subprogramas/Funciones - Arreglos”
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Abstracción.
Abstracción El concepto de abstracción es esencial en ciencias de la computación. Un programa es en sí mismo una abstracción, un modelo de la resolución.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Programación Orientada a Objetos: CLASES Y OBJETOS
Un paseo por las nuevas funciones. Patrones de Diseño Por si no ha quedado claro, los Patrones de Diseño, son el esqueleto de las soluciones a problemas.
TALLER POO JAVA ERNESTO GOMEZ VARGAS. OBJETIVOS REALIZAR UNA APLICACIÓN SENCILLA DE P.O.O FAMILIARIZARSE CON LA HERRAMETA NETBEANS APLICAR EL CONCEPTO.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Crear Aplicación Cliente para Conectarse a una Base de Datos.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Introducción a programación web Martin Esses. En las presentaciones anteriores, vimos como enviar datos a un controlador usando POST y como generar formularios.
Transcripción de la presentación:

Encapsulamiento Miguel Ángel Rojas Aguilar Esthela Carmina Carranza Cabrera

Definición de encapsulamiento O El encapsulamiento es la característica de autonomía de la OO. Esta característica permite generar componentes autónomos de software tomando una parte de funcionalidad y ocultando los detalles de la implementación al mundo exterior. O Los términos módulo, componente o vean se suelen utilizar en lugar de “componente encapsulado de software”. O Una vez encapsulada, una entidad de software se puede visualizar como una caja negra. 2 Interfaz Mensaje Interfaz

Características de un encapsulamiento eficaz O Un encapsulamiento eficaz permite escribir componentes autónomos de software. O Las tres características de un encapsulamiento eficaz son: O Abstracción. O Ocultamiento de la implementación. O División de la responsabilidad. 3

ArticuloSinEncapsular.java public class ArticuloSinEncapsular { public double precio_unitario; public double descuento; // porcentaje de descuento que se aplicará al precio public int cantidad; public String descripcion; public String id; public ArticuloSinEncapsular( String id, String descripcion, int cantidad, double precio ) { this.id = id; this.descripcion = descripcion; if ( cantidad >= 0 ) this.cantidad = cantidad; else this.cantidad = 0; this.precio_unitario = precio; } …. } 4

EjemploArticuloSinEncapsular.java public class EjemploArticuloSinEncapsular extends Object { public static void main( String [] args ) { ArticuloSinEncapsular monitor = new ArticuloSinEncapsular( "electrónicos-012", "Monitor SVGA de 17\"", 1, ); monitor.descuento = 1.25; // inválido, ¡el descuento debe ser menor a 100%! double precio = monitor.getTotalAjustado(); System.out.println( "Total incorrecto: " + precio + “ $ "); monitor.setDescuento( 1.25 ); // inválido // no obstante, el monitor atrapará el error precio = monitor.getTotalAjustado(); System.out.println( "Total correcto: " + precio + “ $ "); } 5

O El resultado de la ejecución es el siguiente: Total incorrecto: $ Total correcto: $ O Se crea un objeto de la clase ArticuloSinEncapsular y se aplica un descuento inválido. Por tanto, el resultado es un precio ajustado erróneo. 6 EjemploArticuloSinEncapsular.java

¿Cómo proteger a los usuarios mediante el ocultamiento de la implementación? O El ocultamiento de la implementación conduce a un diseño más flexible porque evita que los usuarios del objeto dependan estrechamente de la implementación del objeto. O Así, el ocultamiento de la implementación no sólo protege al objeto, sino también a aquellos que lo utilizan pues fomenta la creación de código moderadamente ligado al objeto. O El código moderadamente ligado es independiente de la implementación de otros componentes. O El código estrechamente ligado depende intensamente de la implementación de otros componentes. 7

¿Cómo proteger a los usuarios mediante el ocultamiento de la implementación? O El encapsulamiento y el ocultamiento de la implementación no son mágicos. Si se realizan cambios en una interfaz, será necesario actualizar el código dependiente de esa interfaz. Mediante el ocultamiento de los detalles y la escritura de software para una interfaz, se crea código moderadamente ligado. O El código estrechamente ligado choca con el propósito del encapsulamiento: crear objetos independientes y reutilizables. 8

Ejemplo de ocultamiento de la implementación public class Cliente { //... diversos métodos para el cliente... public Articulo [] articulos; // este arreglo contiene cualquier artículo seleccionado } public static void main ( String [] args ) { Cliente cliente = new Cliente(); // … elige algunos artículos … // asigna precio a los artículos double total = 0.0; for (int i = 0; i < cliente.articulos.length; i++) { Articulo articulo = cliente.articulos[i]: total = total + articulo.getTotalAjustado(); } … } … 9

Ejemplo de ocultamiento de la implementación O El método main() toma un cliente, agrega algunos artículos y da el total del pedido. Aquí, el arreglo Articulo forma parte de la interfaz externa de Cliente. O En el ejemplo anterior en la clase Cliente se debe hacer privado el arreglo Articulo, y dar acceso a los artículos a través de get y set. 10

Mejor definición de encapsulamiento O El encapsulamiento eficaz se compone de: O Abstracción. O Ocultamiento de la implementación. O Responsabilidad. O Si eliminamos O La abstracción, será código no reutilizable. O El ocultamiento de la implementación, será código frágil y estrechamente ligado. O La responsabilidad, será código orientado a datos y con una lista de procedimientos (procedural). 11