Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e...
-
Upload
francisca-vargas-paez -
Category
Documents
-
view
226 -
download
3
Transcript of Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e...
![Page 1: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/1.jpg)
Introducción a la Programación Orientada a Objetos
Sonia Rueda
Introducción a la Programación Orientada a Objetos
Sonia Rueda
Departamento de Ciencias e Ingeniería
de la ComputaciónUNIVERSIDAD NACIONAL DEL SUR
2013
![Page 2: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/2.jpg)
DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓNUNIVERSIDAD NACIONAL DEL SUR
Programación
Matemática
Software
Sistemas deHardware
Electrónica
Trabajo Finalde Carrera
Teoría
MateriaOptativa
![Page 3: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/3.jpg)
Objetivos de las Materias de Programación
•Aprender Contenidos Conceptuales
Introducción a la Programación Orientada a Objetos
Resolución de Problemas y Algoritmos
Introducción a la Programación Orientada a
ObjetosAlgoritmoTipo de DatoIteraciónRecursividadDiseño Top-Down…
ObjetoClaseEncapsulamientoHerenciaPolimorfismo…
![Page 4: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/4.jpg)
Objetivos de las Materias de Programación
Reforzar y desarrollar Competencias generales
• Comunicarse en forma oral y escrita
• Resolver problemas
• Aprender con autonomía
• Administrar el tiempo
• Trabajar en Equipo
…
Introducción a la Programación Orientada a Objetos
![Page 5: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/5.jpg)
Objetivos de las Materias de Programación
Reforzar y desarrollar Competencias específicas
• Dividir problemas en subproblemas
• Diseñar algoritmos
• Utilizar diferentes lenguajes de diseño y de programación
…
Introducción a la Programación Orientada a Objetos
![Page 6: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/6.jpg)
Objetivo de IPOO
Contenidos de IPOO
Aprender y aplicar los fundamentos de la programación orientada a objetos a la construcción de sistemas de software para resolver problemas de pequeña y mediana escala.
• Conceptos, principios y técnicas de programación orientada a objetos
• El lenguaje de programación Java
Introducción a la Programación Orientada a Objetos
![Page 7: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/7.jpg)
Organización de las Clases
En las clases teóricas, en las prácticas y en el laboratorio se trabaja con un enfoque basado en la resolución de problemas.
En las clases teóricas se presentan conceptos, principios y técnicas de programación orientada a objetos y se aplican en ejemplos concretos.
En las clases prácticas se presenta el lenguaje de programación Java, se aplican los conceptos, principios y técnicas, se implementan clases a partir de diagramas y se diseñan los algoritmos que modelan los servicios.
En las clases de laboratorio se implementan y verifican las soluciones de algunos problemas seleccionados de los trabajos prácticos.
Introducción a la Programación Orientada a Objetos
![Page 8: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/8.jpg)
Problemas y Soluciones
Introducción a la Programación Orientada a Objetos
Resolución de un Problema Programa
abstracción
DATOS
ACCIONES
![Page 9: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/9.jpg)
Problemas y Soluciones
Introducción a la Programación Orientada a Objetos
Un programa es un modelo de la
resolución de un problema
Un lenguaje de programación es una notación formal para especificar
un modelo para la resolución de un problema
![Page 10: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/10.jpg)
Problemas y Soluciones
Introducción a la Programación Orientada a Objetos
Un lenguaje de programación permite modelar datos y acciones.
El lenguaje brinda:
• Tipos de datos elementales y mecanismos para definir nuevos tipos.
•Acciones primitivas y mecanismos para definir nuevas acciones.
![Page 11: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/11.jpg)
Problemas y Soluciones
Introducción a la Programación Orientada a Objetos
El software es el conjunto de programas que permiten que los dispositivos físicos de una computadora puedan ser utilizados.
El desarrollo de software es un proceso a partir del cual se construye
un modelo de la resoluciónde un problema
![Page 12: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/12.jpg)
El proceso de desarrollo de Software
El desarrollo en cascada propone una secuencia específica de etapas para abarcar el proceso de desarrollo de software.
El producto final de este proceso es un sistema de software que resuelve el problema planteado por la especificación de requerimientos.
Todo sistema de software tiene un ciclo de vida durante el cual atraviesa diferentes etapas.
Introducción a la Programación Orientada a Objetos
![Page 13: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/13.jpg)
El proceso de desarrollo de SoftwareEstudio de Factibilidad
Especificación de Requerimientos
Análisis y Diseño del Sistema
Implementación
Verificación
Mantenimiento
DOCUMENTACION
Introducción a la Programación Orientada a Objetos
![Page 14: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/14.jpg)
El proceso de desarrollo de SoftwareEstudio de Factibilidad
Especificación de Requerimientos
Análisis y Diseño del Sistema
Implementación
Verificación
Mantenimiento
DOCUMENTACION
Un sistema de software se desarrolla para satisfacer una demanda.
La funcionalidad del sistema se especifica a partir de un conjunto de requerimientos.
El éxito de un sistema puede medirse en parte de acuerdo a en qué medida los requerimientos establecidos reflejan la demanda real.
El resultado de esta fase es un documento que establece qué hará el sistema y sirve de punto de partida para la documentación.
Introducción a la Programación Orientada a Objetos
![Page 15: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/15.jpg)
El proceso de desarrollo de SoftwareEstudio de Factibilidad
Especificación de Requerimientos
Análisis y Diseño del Sistema
Implementación
Verificación
Mantenimiento
DOCUMENTACION
A partir del análisis de los requerimientos se diseña una solución.
El resultado de esta etapa es un documento que describe los módulos que integrarán el sistema, sus interfases y el modo en que se relacionan entre sí, los casos de prueba.
Existen diferentes herramientas y metodologías para encarar esta etapa y la elección de una de ellas tendrá un fuerte impacto en la elección del lenguaje de programación.
Introducción a la Programación Orientada a Objetos
![Page 16: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/16.jpg)
El proceso de desarrollo de SoftwareEstudio de Factibilidad
Especificación de Requerimientos
Análisis y Diseño del Sistema
Implementación
Verificación
Mantenimiento
DOCUMENTACION
A partir del diseño se genera el programa escrito en un lenguaje de programación y toda la documentación referida al código.
El programa implementado se instala para ser verificado.
Introducción a la Programación Orientada a Objetos
![Page 17: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/17.jpg)
Estudio de Factibilidad
Especificación de Requerimientos
Análisis y Diseño del Sistema
Implementación
Verificación
Mantenimiento
DOCUMENTACION
Se valida la implementación respecto a la especificación de requerimientos.
Existen distintas etapas en la verificación y diferentes formas de hacerlo, algunas informales y otras formales.
Los casos de prueba deberían ser diseñados cuidadosamente.
Una vez verificada la implementación se instala el sistema para su puesta en marcha.
Introducción a la Programación Orientada a Objetos
El proceso de desarrollo de Software
![Page 18: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/18.jpg)
Estudio de Factibilidad
Especificación de Requerimientos
Análisis y Diseño del Sistema
Implementación
Verificación
Mantenimiento
DOCUMENTACION
Durante el ciclo de vida de un programa las necesidades del usuario cambian y normalmente crecen.
El mantenimiento involucra todos los cambios en el software que resultan de modificaciones en la especificación.
Introducción a la Programación Orientada a Objetos
El proceso de desarrollo de Software
![Page 19: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/19.jpg)
Introducción a la Programación Orientada a Objetos
Los graduados de nuestras carreras están capacitados para:•Participar en cada una de las etapas del proceso de desarrollo de software seleccionando y aplicando metodologías y herramientas adecuadas.•Desarrollar nuevas metodologías y herramientas. •Administrar y Evaluar proyectos de software aplicando criterios de calidad y productividad. •Auditar y Certificar proyectos y sistemas de software considerando pautas técnicas y normas de seguridad.•Elaborar pautas técnicas y normas de seguridad que permitan resguardar y controlar recursos físicos y lógicos.
Incumbencias
![Page 20: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/20.jpg)
Calidad de Software
La calidad puede medirse de acuerdo a distintos factores. Algunos de estos factores son percibidos por el usuario o cliente. Otros factores son transparentes para el usuario o cliente, aunque por supuesto lo afectan indirectamente.
Introducción a la Programación Orientada a Objetos
La calidad de un producto de software puede definirse como su capacidad para satisfacer los requisitos establecidos. Parte de los requisitos están establecidos en la especificación de requerimientos.
![Page 21: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/21.jpg)
Calidad de SoftwareCorrectitudUn producto de software correcto actúa de acuerdo a los requerimientos especificados.
EficienciaUn producto de software es eficiente si tiene una baja demanda de recursos de hardware, en particular tiempo de CPU, espacio de memoria y ancho de banda.
PortabilidadUn producto de software es portable si puede ejecutarse sobre diferentes plataforma de hardware y de software.
Introducción a la Programación Orientada a Objetos
![Page 22: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/22.jpg)
Calidad de Software
Introducción a la Programación Orientada a Objetos
SimplicidadUn producto de software es simple si es fácil de usar, su interfaz es amigable y no requiere demasiado entrenamiento ni capacitación.
ConfiabilidadUn producto de software es confiable se reacciona adecuadamente aun en circunstancias no especificadas en los requerimientos.
![Page 23: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/23.jpg)
Productividad de Software
Introducción a la Programación Orientada a Objetos
ExtensibilidadUn producto de software es extensible si es fácil adaptarlo a cambios en la especificación. El primer requerimiento para la extensibilidad es la legibilidad.
ReusabilidadUn módulo de software es reusable si puede utilizarse para la construcción de diferentes aplicaciones.
![Page 24: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/24.jpg)
Programación Orientada a Objetos
La programación orientada a objetos brinda un principio y una metodología que apoya al proceso de desarrollo de software en todas sus etapas.
El lenguaje de programación debe brindar mecanismos que permitan la aplicación de la metodología y contribuyan a favorecer la calidad y productividad.
Introducción a la Programación Orientada a Objetos
![Page 25: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/25.jpg)
El término objeto se utiliza para referirse a dos conceptos relacionados pero diferentes.
En un problema a resolver podemos identificar los objetos o entidades relevantes.
Durante la ejecución del programa que modela el problema se crean objetos de software.
Cada objeto relevante del problema está asociado a un objeto de software que lo representa en ejecución.
Introducción a la Programación Orientada a Objetos
El concepto de Objeto
![Page 26: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/26.jpg)
Introducción a la Programación Orientada a Objetos
ProblemaObjetos Reales
Programa en EjecuciónObjetos de
Software
abstracción
En ejecución, cada objeto del problema esta asociadoa una representación abstracta, un objeto de software
El concepto de Objeto
![Page 27: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/27.jpg)
Los objetos de un problema pueden caracterizarse a través de atributos y un comportamiento.
Un atributo es una propiedad o cualidad y se representa como un dato.
El comportamiento está dado por el conjunto de servicios que el objeto brinda.
Los objetos se agrupan en clases de acuerdo a los atributos y servicios que los caracterizan.
Introducción a la Programación Orientada a Objetos
El concepto de Objeto
![Page 28: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/28.jpg)
Una clase es un patrón o esquema que especifica los atributos y servicios compartidos por todos los objetos que pertenecen a ella.
Las clases se relacionan entre sí de maneras diferentes.
En esta materia vamos a presentar tres formas de relación: dependencia, asociación y herencia.
Introducción a la Programación Orientada a Objetos
El concepto de Clase
![Page 29: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/29.jpg)
En la etapa de análisis de un sistema se identifican objetos y se los caracteriza de acuerdo a sus atributos y su comportamiento.
En la etapa de diseño los objetos se agrupan en clases. Los objetos de una misma clase comparten los mismos atributos y servicios.
El resultado de un diseño orientado a objetos es un diagrama de clases escrito en un lenguaje de modelado.
El diagrama especifica la colección de clases y sus relaciones.
Introducción a la Programación Orientada a Objetos
Objetos y Clases
![Page 30: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/30.jpg)
En la implementación se escribe el código de cada clase en un lenguaje de programación, manteniendo las relaciones especificadas en el diagrama.
En la ejecución del programa se crean objetos de software que son instancias de una clase
En esta etapa una clase puede pensarse como un generador a partir del cual se crean objetos de software.
Introducción a la Programación Orientada a Objetos
Objetos y Clases
![Page 31: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/31.jpg)
Un lenguaje de modelado permite construir distintos tipos de diagramas para describir diferentes aspectos de un sistema de software.
Es una herramienta muy útil para las etapas de diseño e implementación de programas y también para la documentación.
Un diagrama de clases permite especificar la estructura de un sistema en función de las clases que lo componen.
Introducción a la Programación Orientada a Objetos
Diagrama de clases
![Page 32: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/32.jpg)
Las clases son dibujadas como rectángulos conformados por:
Nombre de la clase
Atributos de las instancias
Servicios
Responsabilidades
Comentarios
Introducción a la Programación Orientada a Objetos
Diagrama de clases
Atributos de la clase
![Page 33: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/33.jpg)
Cada atributo va a estar asociado a un tipo.
Los servicios pueden ser constructores, comandos o consultas.
Introducción a la Programación Orientada a Objetos
Por el momento no especificaremos la sección responsabilidades. Usaremos los comentarios para especificar responsabilidades de la clase y de cada servicio.
El diseño puede completarse con elementos adicionales como por ejemplo los casos de prueba.
Diagrama de clases
![Page 34: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/34.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
El Ministerio de Educación de una provincia mantiene datos que le permiten obtener información demográfica. El sistema está conformado por varias clases, una de las cuales permite modelar a cada ciudad de la provincia.
Cada ciudad se modela a través de atributos Código Postal, población actual, superficie medida en kilómetros cuadrados y la densidad. Este último valor se obtiene como el cociente entre la población y la superficie de la ciudad.
![Page 35: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/35.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
Ciudad
<<atributos de instancia>>CP: enteropoblacion : enterosuperficie: real
Se asumen valores no negativos
La responsabilidad de controlar que los valores no son negativos se le asigna a las clases que usen a la clase Ciudad.
Atributos
![Page 36: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/36.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
Un constructor es un servicio provisto por la clase y se caracteriza porque recibe el mismo nombre que la clase.
El constructor se invoca cuando se crea un objeto y permite inicializar los valores de los atributos de instancia.
Una clase puede brindar varios constructores.
Constructores
![Page 37: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/37.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
Ciudad
<<atributos de instancia>>CP: enteropoblacion : enterosuperficie: real <<constructores>>Ciudad (c : entero)Ciudad(c: entero,p:entero,s:real)
Este diseño especifica que puede crearse una instancia especificando sólo el código postal o especificando el código, la población y la superficie.
Constructores
![Page 38: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/38.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
Los comandos son servicios que modifican los valores de los atributos.
Por lo general cada clase ofrece un comando para establecer el valor de cada atributo de instancia.
Comandos
![Page 39: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/39.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
Ciudad
<<atributos de instancia>>CP: enteropoblacion : enterosuperficie: real
Este diseño especifica que pueden modificarse los valores de la población y la superficie.
<<constructores>>…<<comandos>>establecerPoblacion (pob : entero)establecerSuperficie (sup : real)…
Comandos
![Page 40: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/40.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
Ciudad
<<atributos de instancia>>CP: enteropoblacion : enterosuperficie: real
El comentario describe la funcionalidad del comando.
<<constructores>>…<<comandos>>…aumentarPoblacion (cre : entero)…
Se incrementa la población de acuerdo al valor actual más cre
Comandos
![Page 41: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/41.jpg)
Introducción a la Programación Orientada a Objetos
Las consultas son servicios que computan un valor y devuelven un resultado (getter).
La inversa no es necesariamente válida, es decir que un servicio devuelva un resultado no lo convierte en una consulta.
Por lo general se incluye una consulta para retornar el valor de cada atributo de instancia.
Caso de Estudio:CiudadConsultas
![Page 42: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/42.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
Ciudad
<<atributos de instancia>>CP: enteropoblacion : enterosuperficie: real <<constructor>>…<<comandos>>…<<consultas>> obtenerCP(): enteroobtenerPoblación() : enteroobtenerSuperficie() : real…
Consultas
![Page 43: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/43.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
Ciudad
<<atributos de instancia>>CP: enteropoblacion : enterosuperficie: real <<constructor>>…<<comandos>>…<<consultas>> …densidad () : real
cantidad de habitantes por kilómetro cuadrado. Asume superficie mayor que 0.
Consultas
![Page 44: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/44.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
Este diagrama implica dos decisiones de diseño importantes:
• la densidad no se mantiene como un atributo sino un servicio que calcula un valor a partir de los otros almacenados
• es responsabilidad de la clase que “usa” el servicio densidad invocarlo sólo si la superficie es mayor que 0.
Decisiones de Diseño
![Page 45: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/45.jpg)
class Ciudad {
…
}
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
La implementación en Java de este diagrama consiste en definir una clase Ciudad
Ciudad
Atributos de las instancias
Servicios
Responsabilidades
Atributos de la clase
Implementación en Java
![Page 46: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/46.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
La palabra class está reservada.
El primer caracter de un identificador debe ser una letra, luego puede estar seguida de otras letras, dígitos, guiones bajos.
Java es sensible a mayúsculas y minúsculas.
Las llaves { } delimitan la definición de la clase. En su interior se definen los atributos y servicios que caracterizan a la clase.
Otros delimitadores cuyo significado iremos viendo son los corchetes, paréntesis, comas, puntos y puntos y comas.
Implementación en Java
![Page 47: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/47.jpg)
Cada atributo va a quedar asociado a un variable o atributo de instancia.
Introducción a la Programación Orientada a Objetos
class Ciudad { private int CP; private int poblacion; private float superficie;}
Caso de Estudio:Ciudad
Ciudad
<<atributos de instancia>>CP: enteropoblacion : enterosuperficie: real
Implementación en Java
![Page 48: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/48.jpg)
Los comentarios se denotan con:
// para comentarios de una línea
/* */ para delimitar comentarios de varias líneas
Java es libre de la línea. El ; es terminador de instrucción.
Introducción a la Programación Orientada a Objetos
La palabra reservada private es un modificador, indica que el alcance de las tres variables es la clase completa.
Caso de Estudio:CiudadImplementación en Java
Si bien Java no exige que las declaraciones aparezcan antes del código, adoptaremos la convención de escribir los atributos antes que los servicios.
![Page 49: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/49.jpg)
Cada variable tiene asociado un tipo.
Los tipos int y float son tipos elementales.
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
Un tipo elemental determina un conjunto de valores atómicos y un conjunto de operaciones que se aplican sobre estos valores.
En ejecución, una variable de un tipo elemental mantiene un valor que corresponde al tipo y participa en las operaciones establecidas por su tipo.
Implementación en Java
![Page 50: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/50.jpg)
Introducción a la Programación Orientada a Objetos
public Ciudad ( int c) { CP = c;}
Caso de Estudio:Ciudad
Ciudad
<<constructores>>Ciudad (c : entero)
Un constructor es un servicio que se invoca cuando se crea un objeto de clase Ciudad.
Constructores en Java
![Page 51: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/51.jpg)
Introducción a la Programación Orientada a Objetos
public Ciudad(int c,int p,float s) { CP = c; poblacion = p; superficie = s; }
Caso de Estudio:Ciudad
Ciudad
<<constructores>>Ciudad (c : entero)Ciudad (c : entero, p: entero, s: real)
Constructores en Java
![Page 52: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/52.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
El primer constructor recibe un parámetro.
El pasaje de parámetros en Java es por valor.
El valor de la variable c se asigna a la variable CP, que es un atributo de instancia.
Las otras dos variables se inicializan con valores por omisión establecidos de acuerdo al tipo.
Constructores en Java
![Page 53: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/53.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
El segundo constructor va a invocarse cuando se cree un objeto de clase Ciudad y se establezcan los valores iniciales de los tres atributos de instancia.
Este constructor recibe tres parámetros.
El nombre Ciudad está sobrecargado.
Constructores en Java
![Page 54: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/54.jpg)
Introducción a la Programación Orientada a Objetos
Si una clase brinda varios constructores el número o tipo de parámetros debe ser diferente en cada uno.
Si en una clase no se define explícitamente un constructor, el compilador crea automáticamente uno.
Si la clase incluye uno o más constructores, el compilador no agrega ningún otro implícitamente.
Caso de Estudio:CiudadConstructores en Java
![Page 55: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/55.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
Ciudad
…
<<comandos>>establecerPoblación (p : entero)
public void establecerPoblacion(int p) { poblacion = p ;}
La palabra void indica que el método no retorna un valor.
En Java los comandos y consultas se llaman métodos.
Comandos y Consultas en Java
![Page 56: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/56.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
Ciudad
…
<<comandos>>aumentarPoblación (cre : entero)
public void aumentarPoblacion(int cre) {//Se incrementa la población de acuerdo al valor actual más cre
poblacion += cre ;}
Es equivalente a poblacion=poblacion+cre
Se incrementa la población de acuerdo al valor actual más cre
Comandos y Consultas en Java
![Page 57: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/57.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
Ciudad
…
<<consultas>>obtenerPoblación (): entero
public int obtenerPoblacion() { return poblacion;}
Comandos y Consultas en Java
![Page 58: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/58.jpg)
Introducción a la Programación Orientada a Objetos
Caso de Estudio:Ciudad
Ciudad
…
<<consultas>>densidad () :real
public float densidad() { //cantidad … return poblacion/superficie;}
cantidad de habitantes por kilómetro cuadrado. Asume superficie mayor que 0.
Java admite expresiones con operandos de diferentes tipos
Comandos y Consultas en Java
![Page 59: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/59.jpg)
Introducción a la Programación Orientada a Objetos
Contenido de esta clase
Presentación de la materia (objetivos, motivación)
Problemas y Soluciones
El proceso de desarrollo de Software. Etapas
Calidad y Productividad
Programación Orientada a Objetos.
Objetos y Clases
Atributos y Servicios
Constructores, Comandos y Consultas
Implementación de Clases en Java
![Page 60: Introducción a la Programación Orientada a Objetos Sonia Rueda Departamento de Ciencias e Ingeniería de la Computación U NIVERSIDAD N ACIONAL DEL S UR.](https://reader035.fdocuments.net/reader035/viewer/2022062410/5665b4e91a28abb57c94b197/html5/thumbnails/60.jpg)
Introducción a la Programación Orientada a Objetos
Contenido de la próxima clase
Objetos y Clases
Atributos de instancia y de clase
Servicios. Constructores, Comandos y Consultas
Modificadores de acceso
Creación y comunicación entre objetos.
Implementación y Verificación de una Clase en Java
Tester con valores establecidos
Alternativas de diseño para Cuenta Bancaria