Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Fundamentos de programación II, conceptos clave, Apuntes de Ingeniería Infórmatica

Asignatura: fundamentos de programacion, Profesor: .pisto .pisto, Carrera: Ing. En informática, Universidad: UCLM

Tipo: Apuntes

2015/2016

Subido el 07/02/2016

alejandro52
alejandro52 🇪🇸

3.5

(4)

3 documentos

1 / 87

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Te ma 1 . C l as e s y Ob je to s
FUNDAMENTOS DE PROGRAMACIÓN II 1
Esquema
1.1. Introducción
1.2. Concepto de objeto y clase
1.2.1. Objetos
1.2.2. Clases
1.3. Concepto de encapsulación y abstracción
1.4. Relaciones entre clases
1.4.1. Relación de generalizacn
1.4.2. Relación de asociación
1.4.3. Relación de dependencia
1.5. Desarrollo de software orientado a objetos
1.6. Definición de clases y creación de objetos
1.7. Referencias
1.8. Modificadores
1.8.1. Modificadores de visibilidad
1.8.2. Modificador static
ESI CR UCLM
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57

Vista previa parcial del texto

¡Descarga Fundamentos de programación II, conceptos clave y más Apuntes en PDF de Ingeniería Infórmatica solo en Docsity!

Tema 1. Clases y Objetos

FUNDAMENTOS DE PROGRAMACIÓN II 1

  • Esquema 1.1. Introducción 1.2. Concepto de objeto y clase 1.2.1. Objetos 1.2.2. Clases 1.3. Concepto de encapsulación y abstracción 1.4. Relaciones entre clases 1.4.1. Relación de generalización 1.4.2. Relación de asociación 1.4.3. Relación de dependencia 1.5. Desarrollo de software orientado a objetos 1.6. Definición de clases y creación de objetos 1.7. Referencias 1.8. Modificadores 1.8.1. Modificadores de visibilidad 1.8.2. Modificador static ESI CR UCLM

Tema 1. Conceptos clave

  • Clase y objeto
    • Diferencia entre ambas
    • Representación de clases en UML
    • Implementación en software de clases y uso de objetos
    • Visibilidad de atributos
  • Relaciones entre clases
    • Tipos de relaciones
    • Representación de las relaciones en UML
    • Implementación software de las relaciones
  • Referencias
    • Concepto de referencia
    • Uso de referencias en aplicaciones software
  • Uso (básico) de UML ( Unified Modeling Language ) ESI CR UCLM FUNDAMENTOS DE PROGRAMACIÓN II 2

1.1. Introducción

§ 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

1.2. Concepto de Objeto y Clase

§ 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

Estado

Comportamiento

Variables

Métodos

ESI CR UCLM

1.2.1 Objetos (II)

§ 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

1.2.1 Objetos (III)

§ 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:

Alumno:

◦ 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

1.2.1 Objetos (V)

§ 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

código de cada uno de ellos? Pueden ser 30000

alumnos!!!

ESI CR UCLM FUNDAMENTOS DE PROGRAMACIÓN II 10

1.2.1 Objetos (VI)

§ 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

1.2.2 Clases (II)

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

1.2.2 Clases (III)

§ 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

ADT: A set of data values and associated

operations that are precisely specified independent of any

particular implementation

ESI CR UCLM

1.2.2 Clases (V)

Notación UML para las clases FUNDAMENTOS DE PROGRAMACIÓN II 16

Nombre Clase

atributo1: tipo

atributo2: tipo

método1 (parámetro: tipo,… ): tipo retorno

Datos

Métodos

Los atributos (datos) y métodos de una clase se denominan

miembros de la clase

ESI CR UCLM

1.2.2 Clases (VI)

§ Clase en Java: class Alumno { int edad; String nombre; ……………… public int getEdad(){ return edad; } ……………… } § Creación de un objeto:

◦ Alumno Manuel = new Alumno();

ESI CR UCLM FUNDAMENTOS DE PROGRAMACIÓN II 17

1.3. Encapsulación y Abstracción (I)

§ Dos conceptos relacionados que se asocian de forma indisoluble con el de clase § La encapsulación se considera como una de las características

definitorias de la orientación a objetos (encapsulación,

herencia y polimorfismo)

ESI CR UCLM^ FUNDAMENTOS DE PROGRAMACIÓN II^19

1.3. Encapsulación y Abstracción (II)

◦ Encapsulación

◦ 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