La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.

Presentaciones similares


Presentación del tema: "0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento."— Transcripción de la presentación:

1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento Caso de estudio: Punto Dr. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur, Bahía Blanca 2015

2 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 Introducción a la Programación Orientada a Objetos IPOO - 2015 2 TEMARIO Encapsulamiento. Encapsulamiento y abstracción. Caso de estudio: Punto.

3 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ENCAPSULAMIENTO El encapsulamiento es un mecanismo que permite la definición de módulos de software que pueden ser utilizados como “cajas negras”, esto es, sabiendo qué hacen sin saber cómo lo hacen. Este mecanismo permite escribir el código de cada clase proveedora a partir de la especificación de requerimientos y el diagrama de diseño, sin conocer el resto del sistema. El programador de la clase cliente usa a la clase proveedora, conoce su interface, pero no la implementación. Introducción a la Programación Orientada a Objetos IPOO - 2015 3

4 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ENCAPSULAMIENTO Así, el encapsulamiento permite esconder los detalles de la implementación de una clase, de modo que sus clientes sólo conozcan su funcionalidad. Si cambian la implementación de la clase proveedora, en tanto no cambie su funcionalidad, las clases clientes no se verán afectadas. Se reducen las dependencias entre diferentes unidades de software, de modo que estas son más fáciles de leer, verificar y modificar. Introducción a la Programación Orientada a Objetos IPOO - 2015 4

5 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ENCAPSULAMIENTO EN JAVA En Java el programador de una clase establece el nivel de encapsulamiento usando los modificadores de acceso. Los constructores, comandos y consultas especificados por el diseñador en el diagrama, se declaran como públicos y son visibles para las clases clientes. Los atributos se declaran como privados y no son visibles fuera de la clase. Introducción a la Programación Orientada a Objetos IPOO - 2015 5

6 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 Introducción a la Programación Orientada a Objetos IPOO - 2015 6 TEMARIO Encapsulamiento. Encapsulamiento y abstracción. Caso de estudio: Punto.

7 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ENCAPSULAMIENTO Y ABSTRACCIÓN Un lenguaje de programación que permite definir nuevos tipos de datos y brinda un mecanismo de encapsulamiento, permite definir tipos de datos abstractos. Un tipo de dato define un conjunto de operaciones que se aplican sobre un conjunto de valores. Un tipo de dato abstracto (TDA) es un tipo de dato en el cual la representación del conjunto de valores y la implementación del conjunto de operaciones está encapsulada. Introducción a la Programación Orientada a Objetos IPOO - 2015 7

8 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ENCAPSULAMIENTO Y ABSTRACCIÓN EN JAVA En Java el tipo float es un TDA. Cuando el programador declara una variable de tipo float, conoce los valores que la variable puede tomar, pero no cómo se representan internamente. Conoce también las operaciones provistas por el tipo, pero no el código específico de cada operación. La clase String provista por Java también define un TDA. Cada clase que crea un objeto de clase String no puede acceder directamente a la estructura del estado interno, porque está encapsulada. La clase brinda un conjunto de servicios que conforman las operaciones del tipo. Introducción a la Programación Orientada a Objetos IPOO - 2015 8

9 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ENCAPSULAMIENTO Y ABSTRACCIÓN EN JAVA Java permite crear nuevos tipos de datos abstractos definiendo clases que encapsulan sus atributos. Por ejemplo, es posible definir un tipo de dato abstracto Punto. El conjunto de valores es el conjunto de pares de números reales. El conjunto de operaciones incluye, entre otras, crear un punto, decidir si dos puntos son iguales, calcular la distancia entre dos puntos. El siguiente diagrama de clase modela el TDA Punto. Introducción a la Programación Orientada a Objetos IPOO - 2015 9

10 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 Introducción a la Programación Orientada a Objetos IPOO - 2015 10 TEMARIO Encapsulamiento. Encapsulamiento y abstracción. Caso de estudio: Punto.

11 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: PUNTO 11 Punto > x, y: real > Punto(x,y:real) > establecerX(x:real) establecerY(y:real) copy(p:Punto) > obtenerX():real obtenerY():real equals(p:Punto):boolean distancia(p:Punto):real clone():Punto toString():String

12 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: PUNTO 12 Punto > x, y: real > Punto(x,y:real) … class Punto{ //Atributos de Instancia private float x,y; //Constructores public Punto (float x,float y){ this.x = x; this.y = y; }

13 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: PUNTO 13 Punto > x, y: real > establecerX(x:real) establecerY(y:real) copy (p:Punto) … public void establecerX (float x){ this.x = x; } public void establecerY (float y){ this.y = y; } public void copy (Punto p){ x = p.obtenerX(); y = p.obtenerY(); }

14 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: PUNTO 14 Punto > x, y: real > obtenerX():real obtenerY():real … //Consultas public float obtenerX(){ return x; } public float obtenerY(){ return y; }

15 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: PUNTO 15 Punto > x, y: real > … distancia(p:Punto):real … //Consultas … public double distancia(Punto p) { float dx = x - p.obtenerX(); float dy = y - p.obtenerY(); return Math.sqrt(dx*dx+dy*dy); }

16 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: PUNTO 16 Punto > x, y: real > … equals(p:Punto):boolean clone():Punto toString():String public boolean equals (Punto p){ return x == p.obtenerX() && y == p.obtenerY(); } public Punto clone(){ return new Punto(x,y); } public String toString(){ return "("+x+","+y+")"; }

17 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: PUNTO class Geometria{ … public void Figuras(){ Punto p1,p2,p3; p1 = new Punto(1,2); p2 = new Punto(1,2); p3 = p1.clone(); if (p3.equals(p1)) System.out.println(“p3 igual a p1”); if (p3.equals(p2)) System.out.println(“p3 igual a p2”); p3.establecerX(0); if (p3.equals(p1)) System.out.println(“p3 igual a p1”); if (p3.equals(p2)) System.out.println(“p3 igual a p2”); } 17


Descargar ppt "0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento."

Presentaciones similares


Anuncios Google