















































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: fundamentos de programacion, Profesor: .pisto .pisto, Carrera: Ing. En informática, Universidad: UCLM
Tipo: Apuntes
1 / 87
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
















































































FUNDAMENTOS DE PROGRAMACIÓN II 1
§ En este tema abordamos de forma sistemática la programación orientada a objetos. § Todos los contenidos presentados hasta el momento y relativos a la programación imperativa y estructurada tradicional continuarán siendo válidos. Esto se debe a que la programación imperativa se puede considerar como un subconjunto de la programación orientada a objetos. § El desarrollo de software orientado a objetos, implica un cambio de mentalidad desde el tradicional punto de vista funcional. Así, debemos considerar desde un punto de vista general, casi como un diseño, la formulación de la resolución de nuestro problema en términos de objetos y sus relaciones. § Conceptos centrales de objeto y clase. ESI CR UCLM FUNDAMENTOS DE PROGRAMACIÓN II 4
§ Conceptos centrales del paradigma orientado a objetos § Objeto § Clase § Ambos conceptos están estrechamente relacionados, pues uno deriva de otro § Objeto FUNDAMENTOS DE PROGRAMACIÓN II 5
ESI CR UCLM
§ La pelota se podría representar como un objeto que posee variables para almacenar su tamaño y posición, y métodos que la dibujan en la pantalla y calculan cómo se mueve. § Qué datos y qué métodos vamos a usar depende del programa que vayamos a escribir. De hecho, son los requisitos del programa los que indican los datos y métodos necesarios. § Los programas pueden tener muchos objetos del mismo tipo, pero cada objeto en concreto es único. Para cada objeto, sus propiedades tendrán un valor concreto. § Otro ejemplo: Herramienta software de gestión de una universidad. Alumnos son objetos con propiedades: nombre, carrera cursada, asignaturas cursadas, edad o notas. ESI CR UCLM FUNDAMENTOS DE PROGRAMACIÓN II 7
§ Cada objeto alumno almacenará información acerca de un alumno particular, un objeto por alumno. También podemos definir los métodos que se necesiten para los alumnos: imprimir el nombre o calcular la nota media. La estructura de un objeto alumno podría ser:
◦ Estado ◦ Nombre ◦ Estudios ◦ Asignaturas ◦ Edad ◦ Coste matrícula, etc... ◦ Comportamiento: ◦ Imprimir_nombre ◦ Calcular_nota_media ◦ etc ... ESI CR UCLM FUNDAMENTOS DE PROGRAMACIÓN II 8
§ Procesemos un poco más el ejemplo de los alumno A. Tipo de los atributos (datos) ◦ String nombre ◦ String carrera ◦ String [ ] asignaturas ◦ int edad ◦ double costeMatricula B. Firma de los métodos ◦ public void imprimir_nombre() ◦ public double calcular_nota_media() § Pregunta: ¿Si hay varios alumnos tendremos que escribir el
ESI CR UCLM FUNDAMENTOS DE PROGRAMACIÓN II 10
§ Los objetos que tienen las mismas propiedades (aunque sus valores puedan ser distintos) y el mismo comportamiento se agrupan en categorías llamadas clases § Una sola clase DEFINE Múltiples objetos de esa clase ESI CR UCLM FUNDAMENTOS DE PROGRAMACIÓN II 11
Una clase se puede entender como la realización de un tipo abstracto de datos (TAD). Una vez definida una clase podemos crear objetos de la misma. Se dice que creamos un ejemplar, “instancia” de la clase FUNDAMENTOS DE PROGRAMACIÓN II 13 Tipo primitivo Estructura de datos Tipo abstracto de datos Tipo primitivo Operaciones Tipos de datos estructurados ESI CR UCLM
§ El concepto de TAD (ADT) es muy importante, una definición sería (definición del NIST, National Institute of Standards and Technology): § Los TAD NO dependen de la implementación así que su uso se realiza a través de las operaciones (métodos) implementados. § Este concepto es la clave del curso de Estructuras de Datos de segundo. FUNDAMENTOS DE PROGRAMACIÓN II 14
ESI CR UCLM
Notación UML para las clases FUNDAMENTOS DE PROGRAMACIÓN II 16
ESI CR UCLM
§ Clase en Java: class Alumno { int edad; String nombre; ……………… public int getEdad(){ return edad; } ……………… } § Creación de un objeto:
ESI CR UCLM FUNDAMENTOS DE PROGRAMACIÓN II 17
§ Dos conceptos relacionados que se asocian de forma indisoluble con el de clase § La encapsulación se considera como una de las características
ESI CR UCLM^ FUNDAMENTOS DE PROGRAMACIÓN II^19
◦ Consideremos las clases desde dos puntos de vista: § En tiempo de desarrollo § Definición o diseño de la clase: decidir qué datos corresponden a la clase y qué métodos vamos a necesitar para manipular esos datos. Necesitaríamos también diseñar los diferentes métodos. En resumen, necesitaríamos construir “el interior” de la clase. § En tiempo de ejecución § Cuando la clase ya existe, se crean objetos de la misma y se usan invocando los métodos necesarios. El objeto se usa como una caja negra (ocultamiento de información). Se dice que un objeto encapsula datos y métodos (atributos y procedimientos). ESI CR UCLM^ FUNDAMENTOS DE PROGRAMACIÓN II^20