Abstracciones y Modelos

Slides:



Advertisements
Presentaciones similares
2. Manejo de memoria Manejo de memoria estática
Advertisements

Complejidad Computacional
Programación de bajo nivel
Curso de java básico (scjp)
Fundamentos de la programación orientada a objetos
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Programación Orientada a Objetos
El proceso de desarrollo de software
Archivos Implementar un método que lea una secuencia de números enteros de un archivo y compute la cantidad de elementos leídos.
El Proceso de desarrollo de software
Problema abstracción DATOS ACCIONES Problemas y Programas Programa.
El proceso de desarrollo de software
El proceso de desarrollo de software
Lección 1 Introducción a la POO
Curso de Java Estructura del Lenguaje
Genéricos en Java Jaime Ramírez, Ángel Lucas González
Herencia y Polimorfismo
Tema 1. Introducción a la programación (Lenguaje java).
Tratamiento de listas en Java
1.2 Sintaxis del lenguaje Java.
INTRODUCCIÓN A LA PROGRAMACIÓN
Relaciones entre Clases La construcción de un sistema de software orientado a objetos consiste en definir un conjunto de clases relacionadas entre sí.
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.
Programación Orientada a Objetos en Java
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código.
Vectores en java.
Arreglos: Vectores en JAVA
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Introducción a la Programación Orientada a Objetos Redefinición y Sobrecarga Dada la siguiente jerarquía de clases: Alfa Delta Beta.
Realizado por: Bertha Palomeque A. Rodrigo Barzola J. Sensor de Temperatura utilizando el Starter Kit Javelin Stamp.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Material de apoyo Unidad 2 Estructura de datos
Modificadores.
Herencia y Polimorfismo en JAVA
Lic. Rosemary Torrico Bascopé
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
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.
Tema 6: Clases Antonio J. Sierra.
6. Herencia. Clases abstractas. Genericidad
Unidad I Java y C++ : Similitudes y diferencias
Public class MiClase { public static int tmp = 123; // miembro variable public static final double PI = ;// miembro constante public float.
SCJP Sun Certified Programmer for Java 6
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Clase Teórica No. 4 Programación IV
Suponiendo que además en la clase U hay: import java.util.*; class U{ static Scanner teclado = new Scanner(System.in); static public int readInt(String.
El lenguaje de programación Java
JAVA J.A.C..
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Programación Orientada a Aspectos (POA)
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Clases.
Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de ahorro bancaria definimos.
Introducción a la Programación Orientada a Objetos Una clase que modela los atributos y el comportamiento de una colección de objetos, define un tipo de.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Polimorfismo.
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 Caso.
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
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 Asociación.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
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.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
Transcripción de la presentación:

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

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

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

Abstracciones y Modelos En lenguaje máquina las instrucciones y los datos se representan como secuencias de 0 y 1. 00001101 00011101 00011000 00000010 00001100 00011101 00011101 00010010 00001000 00010010 00011101 00000000 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.   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. 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 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. Introducción a la Programación Orientada a Objetos

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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