La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Abstracciones y Modelos

Presentaciones similares


Presentación del tema: "Abstracciones y Modelos"— Transcripción de la presentación:

1 Abstracciones y Modelos
El concepto de abstracción es esencial en ciencias de la computación. Un programa o un subprograma es en sí mismo una abstracción, un modelo de la resolución de un problema o de un subproblema. La programación puede pensarse como un proceso de abstracción basado en reconocer los aspectos relevantes de un problema y descartar aquellos que no lo son. Introducción a la Programación Orientada a Objetos

2 Abstracciones y Modelos
Un programa es una abstracción en dos niveles. Si consideramos una computadora como un dispositivo concreto, el programa es una abstracción porque se aleja de las instrucciones que brinda la máquina y se acerca al problema. Si consideramos la resolución de un problema, el programa es una abstracción porque sólo modela sus aspectos relevantes. Introducción a la Programación Orientada a Objetos

3 Abstracciones y Modelos
Un programa escrito en un lenguaje de programación de alto nivel va a tener que ser traducido, en una o varias etapas, en una secuencia de instrucciones que la computadora pueda interpretar y ejecutar. La computadora solo interpreta y ejecuta instrucciones en lenguaje máquina. El compilador es el encargado de detectar errores sintáctico y si no existen generar una primera traducción. Introducción a la Programación Orientada a Objetos

4 Abstracciones y Modelos
En lenguaje máquina las instrucciones y los datos se representan como secuencias de 0 y 1. Introducción a la Programación Orientada a Objetos

5 Abstracciones y Modelos
Los lenguajes de programación evolucionaron durante las últimas décadas para brindar mayores niveles de abstracción. La abstracción permite que el programador se concentre más en el problema y en su resolución, que en la computadora que va a ejecutar el programa. Una de las características de los lenguajes de programación de alto nivel es que se responsabilizan de la administración de la memoria. Introducción a la Programación Orientada a Objetos

6 Abstracciones y Modelos
El programador accede a la memoria a través de variables. Uno de los primeros mecanismos de abstracción fueron entonces los nombres simbólicos que permitieron nombrar a las operaciones y a las locaciones de memoria. MULT Z,Y,2 SUM Z,Z,X ASIG X,Z X, Y y Z son variables. Introducción a la Programación Orientada a Objetos

7 Variables Una variable es una abstracción de una celda de memoria y tiene tres atributos: Nombre Alcance Tipo Introducción a la Programación Orientada a Objetos

8 El tipo de una variable El tipo de dato es un conjunto de valores y un conjunto de operaciones que pueden aplicarse sobre el conjunto de valores. El concepto de tipo permite factorizar propiedades y establecer chequeos para prevenir errores. En Java una variable puede ser de tipo elemental o de tipo clase. En ambos casos, en ejecución una variable queda ligada a una locación de memoria. Introducción a la Programación Orientada a Objetos

9 El valor de una variable
La locación de memoria asociada a una variable, mantiene en ejecución el valor de la variable. En valor de una variable depende de su tipo: Las variables de tipo elemental mantienen un valor atómico Las variables de tipo clase mantienen una referencia. Introducción a la Programación Orientada a Objetos

10 Declaración, modificación y comparación
A partir de la distinción entre tipos elementales y tipo clase podemos identificar tres diferencias: la declaración la asignación la comparación de variables Introducción a la Programación Orientada a Objetos

11 Variables de Tipo Elemental
int i,j,k; i 1 boolean iguales; j -1 k 1 i = 1; j = -1; iguales t k = j * -1; iguales = i == k; Introducción a la Programación Orientada a Objetos

12 Variables de Tipo Clase
Una variable de un tipo clase no contiene directamente al objeto propiamente dicho, sino una referencia al objeto. El valor de una variable de tipo clase es entonces una referencia. Una referencia puede ser nula o estar asociada a un objeto. Cuando una referencia está asociada o ligada, el valor es la dirección del bloque de memoria en el que se mantiene el estado interno del objeto. El estado interno de un objeto está constituido por el estado interno de los atributos de instancias. Introducción a la Programación Orientada a Objetos

13 Caso de estudio: Estación Meteorológica
En una estación meteorológica se mantienen almacenadas las temperaturas mínimas y máximas registradas en un día de un período. TempMinMax min,max : real <<Constructor>> TempMinMax(min,max:real) <<Consultas>> obtenerMin():real obtenerMax():real promedio():real amplitud():real equals(t: TempMinMax):boolean toString():String mayorMax(t:TempMinMax):real mayorAmplitud(t:TempMinMax):TempMinMax Asume que se controló min<=max Introducción a la Programación Orientada a Objetos

14 Caso de estudio:Estación Meteorológica
class TempMinMax{ //atributos de instancia private float min; private float max; //Constructores public TempMinMax(float min,float max){ //Se asume controlado min <= max this.min = min; this.max = max; } Introducción a la Programación Orientada a Objetos

15 Caso de estudio:Estación Meteorológica
//Consultas public float obtenerMin(){ return min; } public float obtenerMax(){ return max; Introducción a la Programación Orientada a Objetos

16 Caso de estudio:Estación Meteorológica
public float promedio(){ return (min+max)/2; } public float amplitud(){ return max-min; public boolean equals(TempMinMax t){ return max == t.obtenerMax() && min == t.obtenerMin(); public String toString(){ return "min "+min+ " max "+max; Introducción a la Programación Orientada a Objetos

17 Caso de estudio:Estación Meteorológica
public float mayorMax(TempMinMax t){ if (max >= t.obtenerMax()) return max; else return t.obtenerMax(); } public TempMinMax mayorAmplitud(TempMinMax t){ if (amplitud() >= t.amplitud()) return this; return t; Introducción a la Programación Orientada a Objetos

18 Declaración class EstacionMeteorologica{
public static void main (String a[]){ TempMinMax lunes, martes, miercoles; } Introducción a la Programación Orientada a Objetos

19 Asignación class EstacionMeteorologica{
public static void main (String a[]){ TempMinMax lunes, martes, miercoles; lunes = new TempMinMax(10,17); martes = new TempMinMax(-3,15); miercoles = new TempMinMax(10,17); } Introducción a la Programación Orientada a Objetos

20 Declaración y Asignación
class EstacionMeteorologica{ public static void main (String a[]){ TempMinMax lunes, martes, miercoles; lunes = new TempMinMax(10,17); martes = new TempMinMax(-3,15); miercoles = new TempMinMax(10,17); float mm = lunes.mayorMax(martes); System.out.println ("Mayor maxima "+mm)); } Introducción a la Programación Orientada a Objetos

21 Objetos anónimos class EstacionMeteorologica{
public static void main (String a[]){ TempMinMax lunes, martes, miercoles; lunes = new TempMinMax(10,17); martes = new TempMinMax(-3,15); miercoles = new TempMinMax(10,17); float mm = lunes.mayorMax(martes); System.out.println ("Mayor maxima "+mm); String s = lunes.mayorAmplitud(martes).toString(); System.out.println ("Mayor amplitud "+s); } Introducción a la Programación Orientada a Objetos

22 Identidad, Igualdad y Equivalencia
class EstacionMeteorologica{ public static void main (String a[]){ TempMinMax lunes, martes, miercoles; lunes = new TempMinMax(10,17); martes = new TempMinMax(-3,15); miercoles = new TempMinMax(10,17); float mm = lunes.mayorMax(martes); System.out.println ("Mayor maxima "+mm); TempMinMax ma = lunes.mayorAmplitud(martes); } Introducción a la Programación Orientada a Objetos

23 Identidad, Igualdad y Equivalencia
class EstacionMeteorologica{ public static void main (String a[]){ TempMinMax lunes, martes, miercoles; lunes = new TempMinMax(10,17); martes = new TempMinMax(-3,15); miercoles = new TempMinMax(10,17); float mm = lunes.mayorMax(martes); System.out.println ("Mayor maxima "+mm); TempMinMax mamp = lunes.mayorAmplitud(martes); System.out.println (lunes == miercoles); System.out.println (martes == mamp); System.out.println (lunes.equals(miercoles)); } Introducción a la Programación Orientada a Objetos

24 Identidad, Igualdad y Equivalencia
Es importante distinguir entre el nombre de un objeto, el objeto mismo y el objeto del problema que representa. Un mismo objeto puede tener dos nombres diferentes y también es posible que dos objetos diferentes, con diferentes nombres, representen a un mismo objeto del problema. Bajo estas circunstancias, cómo decidimos si dos objetos son iguales? Introducción a la Programación Orientada a Objetos

25 Identidad, Igualdad y Equivalencia
Dos objetos con el mismo estado interno 10 min 10 min lunes miercoles 17 max 17 max Un mismo objeto referenciado por dos variables martes min -3 max 15 mamp Introducción a la Programación Orientada a Objetos


Descargar ppt "Abstracciones y Modelos"

Presentaciones similares


Anuncios Google