La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a la Programación Orientada a Objetos Abstracciones y Modelos El concepto de abstracción es esencial en ciencias de la computación. Un programa.

Presentaciones similares


Presentación del tema: "Introducción a la Programación Orientada a Objetos Abstracciones y Modelos El concepto de abstracción es esencial en ciencias de la computación. Un programa."— Transcripción de la presentación:

1 Introducción a la Programación Orientada a Objetos 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.

2 Introducción a la Programación Orientada a Objetos 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.

3 Introducción a la Programación Orientada a Objetos 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.

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

5 Introducción a la Programación Orientada a Objetos 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.

6 Introducción a la Programación Orientada a Objetos 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.

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

8 Introducción a la Programación Orientada a Objetos 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.

9 Introducción a la Programación Orientada a Objetos 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. El valor de una variable

10 Introducción a la Programación Orientada a Objetos 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 Declaración, modificación y comparación

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

12 Introducción a la Programación Orientada a Objetos 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.

13 Introducción a la Programación Orientada a Objetos 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. Caso de estudio: Estación Meteorológica TempMinMax min,max : real > TempMinMax(min,max:real) > 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

14 Introducción a la Programación Orientada a Objetos 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; } … }

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

16 Introducción a la Programación Orientada a Objetos 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; }

17 Introducción a la Programación Orientada a Objetos 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; else return t; }

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

19 Introducción a la Programación Orientada a Objetos 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); … } Asignación

20 Introducción a la Programación Orientada a Objetos 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)); … } } Declaración y Asignación

21 Introducción a la Programación Orientada a Objetos 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); … } } Objetos anónimos

22 Introducción a la Programación Orientada a Objetos 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); } } Identidad, Igualdad y Equivalencia

23 Introducción a la Programación Orientada a Objetos 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)); } } Identidad, Igualdad y Equivalencia

24 Introducción a la Programación Orientada a Objetos 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?

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


Descargar ppt "Introducción a la Programación Orientada a Objetos Abstracciones y Modelos El concepto de abstracción es esencial en ciencias de la computación. Un programa."

Presentaciones similares


Anuncios Google