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 El desarrollo de software es un proceso que permite construir un modelo de la resolución de un problema.

Presentaciones similares


Presentación del tema: "Introducción a la Programación Orientada a Objetos El desarrollo de software es un proceso que permite construir un modelo de la resolución de un problema."— Transcripción de la presentación:

1 Introducción a la Programación Orientada a Objetos El desarrollo de software es un proceso que permite construir un modelo de la resolución de un problema El proceso de desarrollo de software La construcción de un modelo requiere de la aplicación de un principio, una metodología y un conjunto de herramientas. Una metodología propone un conjunto de métodos, estrategias y técnicas.

2 Herramientas Introducción a la Programación Orientada a Objetos DISEÑO Lenguaje de Modelado IMPLEMENTACIÓN Lenguaje de Programación IDE El proceso de desarrollo de Software

3 Introducción a la Programación Orientada a Objetos Programa ABSTRACCIÓN DATOS ACCIONES En los problemas de gran escala el proceso de abstracción es mayor Métodos+Técnicas+Estrategias Resolución de un Problema Herramientas El proceso de desarrollo de Software

4 Introducción a la Programación Orientada a Objetos Problema Subproblema 1 Módulo 1 Programa Subproblema 2 Subproblema 3 Módulo 2 Módulo 3 DISEÑO IMPLEMENTACIÓN El proceso de desarrollo de Software

5 DATOSACCIONES+ Introducción a la Programación Orientada a Objetos Dividir y Conquistar El proceso de desarrollo de Software

6 Introducción a la Programación Orientada a Objetos HOSPITAL Internar SISTEMA HOSPITAL Descomposición a partir de las ACCIONES Facturar Operar Facturar Operar DISEÑO IMPLEMENTACIÓN El proceso de desarrollo de Software

7 Introducción a la Programación Orientada a Objetos HOSPITAL Paciente SISTEMA HOSPITAL Descomposición a partir de los DATOS Médico Factura DISEÑO IMPLEMENTACIÓN Internacion Paciente Médico Internacion El proceso de desarrollo de Software

8 Programación Orientada a Objetos La programación orientada a objetos brinda un principio simple y una metodología que guía el proceso de desarrollo de software. La metodología propone identificar en la etapa de análisis los objetos relevantes del problema. En ejecución cada uno de los objetos relevantes del problema quedará asociado a un objeto de software. Introducción a la Programación Orientada a Objetos

9 Programación Orientada a Objetos Análisis Introducción a la Programación Orientada a Objetos

10 Paciente Médico Factura Introducción a la Programación Orientada a Objetos Internado Programación Orientada a Objetos Diseño PlantaContratado Internación

11 APLICACIÓN class Paciente class Médico class Factura class Internación Introducción a la Programación Orientada a Objetos class Internado class Planta Programación Orientada a Objetos Implementación class Contratado

12 Durante la ejecución de un software desarrollado usando la metodología de orientación a objetos, se crean en memoria los objetos de software que mantienen un representación de los objetos del problema. Introducción a la Programación Orientada a Objetos } } Programación Orientada a Objetos Ejecución

13 Introducción a la Programación Orientada a Objetos Programación Orientada a Objetos El modelo computacional Internación Médico InternadoFactura El modelo computacional de la programación orientada a objetos es un mundo poblado de objetos comunicándose a través de mensajes. Cada objeto que recibe un mensaje ejecuta un servicio determinado por su clase.

14 La término objeto se refiere entonces a: Los objetos del problema, es decir las entidades relevantes para modelar. Los objetos de software que se crean en ejecución, algunos de los cuales representan a entidades del problema. Toda entidad relevante del problema está asociada en ejecución a un objeto de software. No todo objeto de software se corresponde a una entidad del problema. Introducción a la Programación Orientada a Objetos El concepto de Objeto

15 Objetos del problema Servicios Objeto de software Mensajes Estado Interno Atributos Identidad Introducción a la Programación Orientada a Objetos El concepto de Objeto

16 Introducción a la Programación Orientada a Objetos El concepto de Objeto Cada objeto del problema está caracterizado a través de atributos y brinda un repertorio de servicios Cada objeto de software tiene una identidad y un estado interno y recibe mensajes en respuesta a los cuales ejecuta un servicio. La identidad distingue a un objeto de los demás.

17 Los objetos de un problema se agrupan en clases de acuerdo a los atributos y servicios que los caracterizan. Una clase es un patrón o esquema que especifica los atributos y servicios compartidos por todos los objetos que pertenecen a ella. Desde el punto de vista del lenguaje de programación, una clase es una unidad de programación. Un sistema de software orientado a objetos va a estar conformado por una colección de clases relacionadas entre sí. Introducción a la Programación Orientada a Objetos El concepto de Clase

18 En la implementación cada atributo va a quedar asociado a una variable o atributo de instancia definido dentro de una clase. Cuando el valor de un atributo es compartido por todas las instancias de una clase, hablamos de atributo de clase. Cada servicio va a estar implementado a través de un constructor o de un método. Introducción a la Programación Orientada a Objetos El concepto de Clase

19 Una clase puede pensarse como un PROVEEDOR de servicios. Cada servicio va a ser usados desde una clase CLIENTE. Entre la clase CLIENTE y la clase PROVEEDORA se establece un contrato a través de las responsabilidades que asume cada una. Un mismo problema puede modelarse de maneras diferentes. En cada diseño alternativo la asignación de responsabilidades puede variar. Introducción a la Programación Orientada a Objetos La interface de una clase

20 Introducción a la Programación Orientada a Objetos La interface de una clase La programación orientada a objetos propone que la interface de una clase esté constituida únicamente por un conjunto de servicios. Los atributos quedan encapsulados. La clase CLIENTE solo conoce la interface de la clase PROVEEDORA. CLIENTE PROVEEDOR DE SERVICIOS interface

21 En Java un programa va a estar conformado por una colección de clases. Cada clase define un conjunto de miembros que pueden ser: variables y constantes constructores métodos (comandos y consultas) El concepto de clase en Java Introducción a la Programación Orientada a Objetos

22 Caso de Estudio: Ciudad Ciudad > CP: entero poblacion : entero superficie: real > Ciudad(cod :entero) Ciudad(cod,p:entero,s:entero) > establecerPoblacion (p : entero) establecerSuperficie(s:real) aumentarPoblacion(p:entero) > obtenerCP(): entero obtenerPoblacion () : entero obtenerSuperficie():real densidad():real cantidad de habitantes por kilómetro cuadrado. Asume superficie mayor que 0. Se asumen valores no negativos Se incrementa la población en p, el valor de p puede ser negativo pero se asume controlado que la población sigue siendo no negativa

23 Introducción a la Programación Orientada a Objetos Caso de Estudio: Ciudad class Ciudad { //atributos de instancia /*El codigo se establece al crearse la ciudad y no cambia */ private int CP; private int poblacion; private float superficie; //Constructores public Ciudad (int cod){ CP = cod; } … //Comandos public void establecerPoblacion (int p){ poblacion = p; } … //Consultas public int obtenerPoblacion () { return poblacion; } … } Ciudad > CP: entero poblacion : entero superficie: real > Ciudad(cod :entero) Ciudad(cod,p:entero,s:entero) > establecerPoblacion (p : entero) establecerSuperficie(s:real) aumentarPoblacion(p:entero) > obtenerCP(): entero obtenerPoblacion () : entero obtenerSuperficie():real densidad():real

24 Introducción a la Programación Orientada a Objetos Los constructores y los métodos que brindan servicios para las clases CLIENTES se declaran como públicos para que sean visibles y puedan ser usados desde el exterior. La interface de una clase está conformada por los miembros públicos de esa clase. En el ejemplo de la clase CIUDAD los atributos de instancia solo son visibles dentro de la clase y los constructores y métodos forman parte de la interface. Caso de Estudio: Ciudad

25 class Ciudad { //atributos de instancia /*El codigo se establece al crearse la ciudad y no cambia */ private int CP; private int poblacion; private float superficie; //Constructores public Ciudad (int cod){ CP = cod; } … //Comandos public void establecerPoblacion (int p){ poblacion = p; } … //Consultas public int obtenerPoblacion () { return poblacion; } … } Introducción a la Programación Orientada a Objetos Caso de Estudio: Ciudad class tester{ … Ciudad ciu; … ciu = new Ciudad(8000); … } CLIENTEPROVEEDORA

26 Introducción a la Programación Orientada a Objetos La instrucción de declaración: Ciudad ciu; Reserva espacio en memoria para una variable con nombre ciu Luego de la declaración, la instrucción de creación: ciu = new Ciudad(8000); Reserva un espacio en memoria para mantener el estado interno del objeto. Liga el objeto de software a la variable ciu. Invoca al constructor Caso de Estudio: Ciudad

27 Introducción a la Programación Orientada a Objetos La siguiente instrucción declara la variable y crea el objeto: Ciudad ciu = new Ciudad(8000); Reserva espacio en memoria para una variable con nombre ciu Reserva un espacio en memoria para mantener el estado interno del objeto. Liga el objeto de software a la variable ciu. Invoca al constructor Caso de Estudio: Ciudad

28 Introducción a la Programación Orientada a Objetos Un diagrama de objetos ofrece una visión abstracta de la memoria: Ciudad ciu = new Ciudad(8000); Caso de Estudio: Ciudad CP población superficie ciu

29 CP población superficie ciu class tester { … Ciudad ciu; ciu=new Ciudad(8000); class Ciudad private int CP; private int poblacion; private float superficie; public Ciudad (int cod) { CP = cod; } Introducción a la Programación Orientada a Objetos Caso de Estudio: Ciudad

30 CP 0 población 0.0 superficie o class Ciudad private int CP; private int poblacion; private float superficie; Introducción a la Programación Orientada a Objetos public Ciudad (int cod, int pob, float sup) { CP = cod; poblacion = pob ; superficie = sup ; } Caso de Estudio: Ciudad class tester { … Ciudad o; o=new Ciudad(7550, 25700,98);

31 Introducción a la Programación Orientada a Objetos Caso de Estudio: Ciudad Ciudad > CP: entero poblacion : entero superficie: real > aumentarPoblacion(p:int) … > … Los comandos son métodos que en general afectan el estado interno (setter o mutators) Se incrementa la población en p, el valor de p puede ser negativo pero se asume controlado que la población sigue siendo no negativa

32 Introducción a la Programación Orientada a Objetos Caso de Estudio: Ciudad class Ciudad { … private int CP; private int poblacion; private float superficie; //Comandos public aumentarPoblacion(int p) { poblacion += p; } … } class tester{ … Ciudad ciu; … ciu.aumentarPoblacion(100); … } CLIENTEPROVEEDORA

33 Introducción a la Programación Orientada a Objetos Caso de Estudio: Ciudad class Ciudad { … private int CP; private int poblacion; private float superficie; //Comandos public aumentarPoblacion(int p) { poblacion += p; } … } class tester{ … Ciudad ciu; … ciu.aumentarPoblacion(-100); … } CLIENTEPROVEEDORA if(ciu.obtenerPoblación()-100>0) El diseño establece que es la clase cliente la responsable de garantizar que los valores de los atributos no son negativos.

34 CP 0 población 0.0 superficie o Ciudad o; o=new Ciudad(7550,25700,98); o.aumentarPoblacion(100); class Ciudad private int CP; private int poblacion; private float superficie; Introducción a la Programación Orientada a Objetos public void aumentarPoblacion (int pob) { poblacion =+ pob; } Caso de Estudio: Ciudad 25800

35 Introducción a la Programación Orientada a Objetos Caso de Estudio: Ciudad Ciudad > CP: entero poblacion : entero superficie: real > … > … densidad (): real … Las consultas son métodos que computan un valor y devuelven un resultado (getter). La inversa no es necesariamente válida, es decir que un método devuelva un resultado no lo convierte en una consulta. cantidad de habitantes por kilómetro cuadrado. Asume superficie mayor que 0.

36 Introducción a la Programación Orientada a Objetos Caso de Estudio: Ciudad class Ciudad { … private int CP; private int poblacion; private float superficie; //Consultas public float densidad () { //Asume que se invoca si //superficie es mayor que 0 return poblacion/superficie; } … } class tester{ … Ciudad ciu; … if(ciu.obtenerSuperficie()>0) d = ciu.densidad(); … } CLIENTEPROVEEDORA El diseño establece que es la clase cliente la responsable de garantizar que la densidad pueda computarse.

37 CP 0 población 0.0 superficie c Introducción a la Programación Orientada a Objetos Ciudad c1 = new Ciudad(8000); Ciudad c2 ; c2 = c1; c2 Caso de Estudio: Ciudad

38 CP 0 población 0.0 superficie c Introducción a la Programación Orientada a Objetos Ciudad c1 = new Ciudad(8000); Ciudad c2 = new Ciudad(8000); CP 0 población 0.0 superficie c Caso de Estudio: Ciudad

39 Introducción a la Programación Orientada a Objetos Caso de Estudio: Ciudad Ciudad > CP: entero poblacion : entero superficie: real … > igualPoblacion (ciu :Ciudad) : boolean mayorPoblacion (ciu :Ciudad) : entero ciudadMayorPoblación (ciu : Ciudad ) : Ciudad … Retorna el CP de la ciudad con mayor población entre las dos comparadas. Si ambas tienen la misma población retorna el CP del objeto que recibió el mensaje Retorna la ciudad con mayor población entre las dos comparadas. Si ambas tienen la misma población retorna la el objeto que recibió el mensaje Retorna verdadero si la ciudad que recibe el mensaje tiene la misma población que la ciudad que pasa como parámetro

40 Introducción a la Programación Orientada a Objetos Caso de Estudio: Ciudad public boolean igualPoblacion(Ciudad ciu){ boolean ig; if (poblacion == ciu.obtenerPoblacion()) ig = true; else ig = false; return ig; } … }

41 Introducción a la Objetos y Mensajes class TestCiudad{ public static void main (String[] args) { … Ciudad origen,destino; … origen= new Ciudad(7600,1000,100); destino= new Ciudad (8200,1000,25); … if (origen.igualPoblacion(destino)) System.out.println( ); … } Caso de Estudio: Ciudad

42 Introducción a la Programación Orientada a Objetos Caso de Estudio: Ciudad public boolean igualPoblacion(Ciudad ciu){ return poblacion == ciu.obtenerPoblacion(); }

43 Introducción a la Programación Orientada a Objetos Caso de Estudio: Ciudad public int mayorPoblacion(Ciudad ciu){ int c; if (poblacion >= ciu.obtenerPoblacion()) c = CP; else c = ciu.obtenerCP(); return c; }

44 Introducción a la Programación Orientada a Objetos Caso de Estudio: Ciudad public Ciudad ciudadMayorPoblacion(Ciudad ciu){ Ciudad c; if (poblacion >= ciu.obtenerPoblacion()) c = this; else c = ciu; return c; } La variable c es local al método ciudadMayorPoblación. Al terminar la ejecución de este método desaparece la variable pero NO el objeto.

45 Introducción a la Programación Orientada a Objetos Contenido de esta clase Lenguaje de modelado y lenguaje de programación El modelo computacional de la POO La clase Cliente y la clase Proveedor Responsabilidades Diagramas de memoria

46 Introducción a la Programación Orientada a Objetos Contenido de la próxima clase Variables. Alcance y Tipo. Variables elementales y de tipo Clase. Declaración, Modificación y Comparación. Objetos y Referencias Identidad, igualdad y equivalencia equals clone y copy


Descargar ppt "Introducción a la Programación Orientada a Objetos El desarrollo de software es un proceso que permite construir un modelo de la resolución de un problema."

Presentaciones similares


Anuncios Google