PDF de programación - Tema 2: Conceptos básicos de Programación Orientada a Objetos

Imágen de pdf Tema 2: Conceptos básicos de Programación Orientada a Objetos

Tema 2: Conceptos básicos de Programación Orientada a Objetosgráfica de visualizaciones

Publicado el 23 de Enero del 2019
1.417 visualizaciones desde el 23 de Enero del 2019
1,7 MB
64 paginas
Creado hace 20a (05/03/2004)
Representación de Datos y Aplicaciones



Tema 2

Tema 2: Conceptos básicos de
Programación Orientada a Objetos


Contenidos
1. Ciclo de vida de un programa
2. ¿Qué es una clase?
3. Composición de clases
4. Herencia de clases
5. ¿Qué es Java?
1 Ciclo de vida de un programa
El ciclo de vida de un programa, también llamado proceso de desarrollo, es el conjunto de
etapas en el desarrollo y utilización de una clase.
1. Especificación: definición de qué va a hacer un programa.

Ejemplo: el programa debe representar un cajero automático de un banco en el que se
pueda:
• consultar saldo
• extraer dinero

ingresar dinero
En esta fase se debe pensar detenidamente en la funcionalidad que se quiere del sistema,
en sus casos de uso, etc. En el ejemplo anterior, ¿se permiten operaciones sólo con
tarjeta o también con libreta? ¿Se permite operar a clientes de otros bancos o sistemas
de tarjetas? etc.

2. Diseño: basándose en la información de la fase de especificación, se plantea una

solución que determina:
• qué clases van a hacer falta para representar el problema
• qué comportamiento (operaciones) van a tener esas clases
• cómo se relacionan entre ellas
En esta fase se utilizan muchas veces diagramas (ver Figura 1).

3. Codificación: también llamada implementación. Una vez está claro cómo se plantea la

solución, hay que codificar las clases. Para ello, hay que basarse en los principios de:



Cajero

autorizaUsuario
consultaSaldo
extraeDinero
ingresaDinero



Tarjeta

compruebaPin
cambiaPin
dameCuenta



Cuenta

extrae
ingresa
dameSaldo
dameMovimientos

Figura 1: Diagrama de clase fase diseño

Dep. Ing. Telemática, UC3M



1

Representación de Datos y Aplicaciones



Tema 2

• Claridad: el objetivo es que el código sea fácil de entender por el diseñador y por

otras personas, para facilitar su depuración, mantenimiento, etc. Para ello, se
cuenta con reglas de estilo, de nombrado, de indentación, realización de
documentación, etc.

• Eficiencia: se trata de buscar soluciones que, para obtener el mismo resultado,

consumar el menor número de recursos posibles. Por recursos se entiende
fundamentalmente la memoria y el tiempo de CPU.

4. Prueba: se compila y ejecuta el programa para ver si cumple la especificación. Si no lo
hace, puede haber errores de codificación o de diseño y hay que volver hacia atrás. ¡Esta
fase puede ocupar un 70% del tiempo total de programación! No la descuidéis.
• Diseñar y codificar las pruebas a la vez que se diseña y codifica el programa
• Probar el mayor número de casos posibles
• Probar a la vez que se va codificando, de menor a mayor

- Cada operación de una clase
- La clase completa
- La integración de varias clases

5. Mantenimiento: una vez se pone el programa en funcionamiento, no termina su ciclo

de vida
• se pueden detectar nuevos errores
• se puede querer cambiar o ampliar su funcionalidad
Por ello es muy importante que el programa sea claro, legible y modular:



los cambios no afectarán a todo el programa
la persona encargada del mantenimiento probablemente no sea la misma que lo
programó

2 ¿Qué es una clase?
La clase es un concepto fundamental de la Programación Orientada a Objetos (POO).

2.1 Definición de clase
Una clase agrupa objetos que son idénticos (tienen los mismos atributos y ofrecen las
mismas operaciones) salvo en su estado concreto en un momento dado.

• Los atributos representan los datos internos del objeto.
• Las operaciones (llamadas métodos en POO) representan su comportamiento: los

mensajes que pueden recibir y procesar de otros objetos.


Ejemplo: vamos a representar mediante objetos a 3 personas, caracterizadas por su nombre,
edad, y profesión. Queremos además que los objetos sean capaces de responder a mensajes
que pregunten por su nombre, por su edad o por su profesión.


José, 23 años, carpintero
Laura, 37 años, estudiantes
Cristina, 19 años, estudiante

Dep. Ing. Telemática, UC3M



2

Representación de Datos y Aplicaciones



Tema 2

Clase



Persona

nombre
edad
profesión

dameNombre
dameEdad
dameProfesión



Persona

José
23
carpintero

dameNombre
dameEdad
dameProfesión

Objetos



Persona

Laura
37
administrativa

dameNombre
dameEdad
dameProfesión



Persona

Cristina
19
estudiante

dameNombre
dameEdad
dameProfesión



Figura 2: Representación de clases y objetos

Los tres objetos anteriores van a ser instancias de la clase Persona, que se caracteriza por sus
atributos (nombre, edad, profesión) y por los métodos que ofrece (dameNombre, dameEdad,
dameProfesión), es decir, los mensajes a los que van a ser capaces de responder los objetos
de dicha clase.

Más ejemplos: clases para representar circuitos electrónicos, vehículos de motor,
asignaturas, etc.

Cada una de las instancias de una clase tiene su propio estado y se puede representar como
una entidad única en el programa. A esta entidad única se le llama objeto. Cada objeto
pertenece a una clase particular que define sus características y su comportamiento. Dada
una clase, se pueden crear tantos objetos de esa clase como se quieran.

Una aplicación (un programa) se compone de una serie de clases, de las cuales se crean una
serie de instancias (objetos) que interactúan entre sí mandándose mensajes (es decir,
llamando a los métodos de los objetos).

2.2 Interfaz e implementación de una clase
• El interfaz de una clase define el tipo de peticiones (operaciones) que se le pueden hacer a

objetos de esa clase (ver Figura 3).

- El interfaz describe qué hace un objeto de una clase
- A un usuario de una clase sólo le hace falta conocer su interfaz

• La implementación es el código que se programa para satisfacer las peticiones del

interfaz.

- La implementación describe cómo responde un objeto a las peticiones
- La implementación no necesita ser pública
- La implementación incluye características internas 8atributos) y el código de las

operaciones

Dep. Ing. Telemática, UC3M



3

Representación de Datos y Aplicaciones



Tema 2

Nombre



Bombilla

enciende()
apaga()
aumentaIntensidad()
disminuyeIntensidad()

Interfaz

Figura 3: Interfaz de una clase



Los diagramas de clase UML son muy usados para representar gráficamente las clases.
• A veces se omiten los atributos o los atributos y operaciones (métodos), según el nivel de

detalle o de visibilidad que se quiera representar en el diagrama



Nombre



Persona

Atributos

Métodos

nombre
edad
profesión

dameNombre
dameEdad
dameProfesión

Figura 4: Diagrama de clase UML



3 Composición de clases
La composición es un mecanismo por el que se pueden crear clases complejas agregando
objetos de clases ya existentes.

• Se la conoce también con relación “tiene-un”
• Permite reutilizar código

Coche

Motor

Figura 5: Composición de clases

Dep. Ing. Telemática, UC3M



4

Representación de Datos y Aplicaciones



Tema 2

Base

Derivada1

Derivada2

Figura 6: Herencia de clases



La nueva clase (Coche) tiene un objeto miembro (un atributo) que será de la clase Motor.

Más ejemplos de composición de clases: una asignatura tiene un profesor coordinador, una
asignatura tiene varios alumnos, un equipo de audio tiene altavoces, etc.

Mediante la composición se permite realizar una programación más modular:

• Los objetos miembros y las clases a las que pertenecen no necesitan ser visibles para

clientes de la clase compuesta.

• Aunque cambie la implementación de la clase del objeto miembro, no tengo por qué

cambiar la implementación de la clase compuesta (siempre que no cambie la
interfaz).

4 Herencia de clases
La herencia es un mecanismo para definir similitud entre clases, en el que se enlazan una
clase base y una o varias clases derivadas (ver Figura 6).
La clase Base contiene todas las características (atributos) y comportamientos (métodos)
comunes, compartidas por las clases derivadas (el núcleo de las clases “similares”)

Las clases Derivadas expresan distintas formas en las que este núcleo se puede realizar (ver
ejemplo en Figura 7).

Forma

dibuja()
borra()
mueve()
obtenColor()
ponColor()

Círculo

Cuadrado

Triángulo

Figura 7: Ejemplo de herencia de clases

Dep. Ing. Telemática, UC3M



5

Representación de Datos y Aplicaciones



Tema 2

Cuando se hereda de una clase Base, se crea una nueva clase que:

• Contiene todos los atributos de la clase Base
• Contiene el interfaz de la clase Base

La herencia se llama también relación “es-un”, porque un objeto de la clase Derivada es
también un objeto de la clase Base (un Círculo es también una Forma).

4.1 Extensión de clases
La clase Derivada puede añadir nuevos métodos y/o atributos que no serán parte de la clase
Base, sino una extensión a la misma


Forma



Círculo

Cuadrado

Triángulo

volteaHorizontal()
volteaVertical()

Figura 8: Ejemplo de extensión de clase

4.2 Sobreescritura de métodos
Otra posibilidad de diferenciar entre las clases derivadas es sobrescribir alguno de los
métodos. En este caso, las clases derivadas tendrán la misma interfaz pero una
implementación distinta.


Forma

dibuja()


Círculo

dibuja()

Cuadrado

Triángulo

Figura 9: Ejemplo de sobreescritura de método

Dep. Ing. Telemática, UC3M



6

Representación de Datos y Aplicaciones



Tema 2

5 ¿Qué es Java?
Java es un lenguaje de Programación Orientada a Objeto publicado por Sun Microsystems
en 1995. Actualmente, la plataforma Java consta de varios elementos:
• El lenguaje de programación Java propiamente dicho
• Un conjunto de bibliotecas estándar que debe existir en cualquier plataforma (Java API)
• Un conjunto de herramientas para el desarrollo de programas:

- Compilador a bytecode (javac)
- Generador de documentación (javadoc)
- Ejecución de programa (intérprete del by
  • Links de descarga
http://lwp-l.com/pdf14959

Comentarios de: Tema 2: Conceptos básicos de Programación Orientada a Objetos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad