Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 88

Programación orientada

a objetos
AED-1286
Tema 1

1
Tema 1: Introducción al paradigma de la
programación orientada a objetos
1.1 Elementos del modelo de objetos:
• Clases
• Objetos
• Abstracción
• Modularidad
• Encapsulamiento
• Herencia y polimorfismo
1.2 Lenguaje de modelado unificado: diagrama de clases

2
Comprende y aplica los
conceptos del paradigma
de programación
orientada a objetos para
modelar situaciones de la
vida real.

3
1.1 Elementos del modelo de objetos: clases,
objetos, abstracción, modularidad,
encapsulamiento, herencia y polimorfismo

4
La orientación a objetos es un paradigma de
programación que facilita la creación de software
de calidad por sus factores que potencian el
mantenimiento, la extensión y la reutilización del
software generado bajo este paradigma.
La programación orientada a objetos trata de
amoldarse al modo de pensar del hombre y no al
de la máquina. Esto es posible gracias a la forma
racional con la que se manejan las abstracciones
que representan las entidades del dominio del
problema, y a propiedades como la jerarquía o el
encapsulamiento.

5
El elemento básico de este paradigma no es la función (elemento básico de la
programación estructurada), sino un ente denominado objeto.
Un objeto es la representación de un concepto para un programa, y contiene toda
la información necesaria para abstraer dicho concepto: los datos que describen su
estado y las operaciones que pueden modificar dicho estado, y determinan las
capacidades del objeto.
Java incorpora el uso de la orientación a objetos como uno de los pilares básicos de
su lenguaje.

6
¿Qué es un objeto en el mundo real?
Un objeto es un elemento real o abstracto, que tiene un estado, un
comportamiento y una identidad. Un objeto es, pues, una mesa, una
silla, un alumno, una clase, etc., pues son elementos reales que se
pueden comprender y están bien definidos.

7
En el mundo real, a menudo se encuentran muchos objetos
individuales todos del mismo tipo, por ejemplo: Una bicicleta. Puede
haber miles de otras bicicletas en existencia, todos de la misma marca y
modelo. Cada bicicleta se construyó desde el mismo conjunto de
planos, por lo que contiene los mismos componentes. En términos
orientados a objeto, se dice que la bicicleta es un ejemplo de la clase
de objetos conocidos como las bicicletas. Una clase es el modelo de
objetos individuales que se crean.

8
9
Viene determinado para el conjunto de propiedades o atributos que
tiene el objeto (que es su estructura estática), junto con los valores que
pueden asumir cada uno de esos atributos (su estructura dinámica).

A continuación se presentan ejemplos con datos concretos:

10
11
El hecho de que un objeto tenga un estado implica que ocupa un
espacio, sea en el mundo real o en la memoria de la computadora,
exista durante un tiempo, cambie el valor de sus atributos, y sea creado
y destruido.
Así, el objeto alumno «Luis Pérez Gómez» descrito anteriormente, se
crea cuando se le inscribe en una escuela; existe como alumno durante
toda su vida escolar; cambia sus datos al cambiar de curso o por otras
circunstancias, y deja de ser alumno cuando sale de la escuela.

12
El comportamiento de un objeto viene determinado por la forma de
actuar al recibir un mensaje para que realice una acción.
Un «mensaje» es una orden que se manda a un objeto para que realice
una operación con un propósito específico.

13
Por ejemplo, los mensajes:
Luis_Perez_Gomez.Asignaturas(curso)
Luis_Perez_Gomez.Asignaturas(todas)
Señalan: el primero, que se desea conocer las asignaturas del curso en
que Luis está matriculado, y el segundo, que se desea conocer todas las
asignaturas en que está matriculado.
En estos dos ejemplos, el argumento del selector (curso o todas)
permite seleccionar unas asignaturas u otras.

14
Se entiende por identidad de un objeto la propiedad característica que
tiene ese objeto que le distingue de todos los demás. Realmente, es
difícil encontrar un dato específico que permanentemente identifique
al objeto.
Así, si se hace referencia a Luis Pérez Gómez, ¿se puede seleccionar
algún dato que lo identifique durante toda su vida?:
— ¿Su nombre? - Lo puede cambiar en el Registro Civil.
— ¿Su edad? - Cambia continuamente.
— ¿Su DNI?, ¿Su sexo? - También pueden cambiar

15
Pero es indudable que pasará el tiempo y Luis Pérez no perderá su identidad y
se podrá diferenciar de todas las demás personas.
Si en la vida real es difícil identificar permanentemente un objeto que
evoluciona, mucho más lo es en el mundo de la computadora. Normalmente
se utiliza, como en la vida real, un nombre definido por el programador que lo
identifique.

16
¿Por qué es importante estudiar los
objetos del mundo real?

17
Los objetos concretos y virtuales, están a nuestro alrededor, ellos
conforman nuestro mundo. El software actual simula al mundo (o un
segmento de él), y los programas, por lo general, imitan a los objetos
del mundo. Si comprende algunas cuestiones básicas de los objetos,
entenderá como se deben mostrar éstos en las representaciones de
software.

Los objetos son clave para entender el término orientado a objetos de


tecnología. Mira a tu alrededor en este momento y encontrarás
muchos ejemplos de objetos del mundo real: un perro, el escritorio,
una televisión, una computadora, estudiantes, animales, clases, etc.

18
¿Por qué el uso de objetos en el
software?

19
Los objetos a menudo se utilizan para modelar los objetos del mundo
real que se encuentran en la vida cotidiana.
Son conceptualmente similares a los objetos reales del mundo:
también ellos constan de estado y el comportamiento relacionado. Un
objeto almacena su estado en los campos (variables en algunos
lenguajes de programación) y expone su comportamiento a través de
métodos (funciones en algunos lenguajes de programación).
Un objeto es un paquete del estado y el comportamiento relacionado.
Los objetos de software a menudo se utilizan para modelar los objetos
del mundo real que se encuentran en la vida cotidiana.

20
Construir códigos en objetos individuales de software proporciona
una serie de beneficios, incluyendo:

1. Modularidad: El código fuente de un objeto puede ser escrito y


mantenido de forma independiente del código fuente de otros
objetos. Una vez creado, un objeto puede ser fácilmente pasado a
otro sistema.
2. Encapsulamiento: Al interactuar sólo con los métodos de un objeto,
los detalles de su implementación interna permanecen ocultos del
mundo exterior.

21
3. Reutilizar código: Si un objeto ya existe (tal vez escrito por otro
desarrollador de software), puede utilizar ese objeto en su
programa. Esto permite a los especialistas
implementar/aplicar/probar hacer depuraciones de niveles
complejos, desarrollar objetos de tareas específicas, en los cuales
se puedan confiar para ejecutar en su propio código.
4. Portabilidad y depuración con facilidad: Si un objeto particular,
resulta ser un problema, simplemente tendrá que sacarlo de su
aplicación y conectar un objeto diferente como su reemplazo. Esto
es análogo a la solución de problemas mecánicos en el mundo real.

22
Una clase es un prototipo o modelo que define las variables y métodos
comunes a todos los objetos de un cierto tipo.
No es mas que una plantilla para la creación de objetos.
Cuando se crea un objeto (instanciación) se ha de especificar de qué
clase es el objeto instanciado, para que el compilador comprenda las
características del objeto.

23
Las clases presentan el estado de los objetos a los que representan
mediante variables denominadas atributos. Cuando se instancia un
objeto el compilador crea en la memoria dinámica un espacio para
tantas variables como atributos tenga la clase a la que pertenece el
objeto.
Los métodos son las funciones mediante las que las clases
representan el comportamiento de los objetos. En dichos métodos se
modifican los valores de los atributos del objeto, y representan las
capacidades del objeto (en muchos textos se les denomina servicios).

24
Una clase por lo general representa un sustantivo, como una persona,
lugar o (posiblemente bastante abstracta) cosa - es el modelo de un
concepto dentro de un programa de computadora. Fundamentalmente,
encapsula el estado y el comportamiento del concepto que representa.
Encapsula el estado a través de marcadores de datos llamados
atributos (o variables miembro o variables de instancia), encapsula el
comportamiento a través de secciones de código reutilizables llamados
métodos.

25
26
Un objeto es una instancia (un ejemplar, un caso concreto) de una
clase (una categoría). Un objeto tiene una estructura y al igual que los
objetos del mundo real comparten dos características: estado y
comportamiento. El estado de un objeto son sus atributos
(propiedades) y el comportamiento (operaciones). La definición de una
clase consta de atributos y operaciones.

27
• Atributos. Estructura de los objetos: sus componentes y la
información o datos contenidos en ellos (otros sinónimo de atributos
son <<variables de instancia>> o <<miembros datos>>).
• Operaciones. El comportamiento de los objetos. Normalmente se
utiliza el termino operaciones, aunque a veces se utilizan otros
sinónimos como <<servicios>> o <<métodos>>.

28
Un objeto consta de:

• Tiempo de vida: La duración de un objeto en un programa siempre


está limitada en el tiempo. La mayoría de los objetos sólo existen
durante una parte de la ejecución del programa. Los objetos son
creados mediante un mecanismo denominado instanciación, y
cuando dejan de existir se dice que son destruidos.
• Estado: Todo objeto posee un estado, definido por sus atributos. Con
él se definen las propiedades del objeto, y el estado en que se
encuentra en un momento determinado de su existencia.
29
• Comportamiento: Todo objeto ha de presentar una interfaz, definida
por sus métodos, para que el resto de objetos que componen los
programas puedan interactuar con él.

El equivalente de un objeto en el paradigma estructurado sería una


variable. Así mismo la instanciación de objetos equivaldría a la
declaración de variables, y el tiempo de vida de un objeto al ámbito de
una variable.

30
Un objeto se define como la unidad que en tiempo de ejecución
realiza las tareas de un programa. También a un nivel más básico se
define como la instancia de una clase. Estos objetos interactúan unos
con otros, en contraposición a la visión tradicional en la cual un
programa es una colección de subrutinas (funciones o procedimientos),
o simplemente una lista de instrucciones para el computador. Cada
objeto es capaz de recibir mensajes, procesar datos y enviar mensajes a
otros objetos de manera similar a un servicio.

31
La abstracción es el proceso de capturar los detalles fundamentales
de un objeto mientras se suprimen o ignoran los detalles generales.
En realidad, la abstracción proporciona un mecanismo crucial para
permitir que las personas comprendan, se comuniquen y razonen
sistemas complejos.

Mediante la abstracción la mente humana modeliza la realidad en


forma de objetos. Para ello busca parecidos entre la realidad y la
posible implementación de objetos del programa que simulen el
funcionamiento de los objetos reales.

32
33
En programación modular, y más específicamente en programación
orientada a objetos, se denomina Modularidad a la propiedad que
permite subdividir una aplicación en partes más pequeñas (llamadas
módulos), cada una de las cuales debe ser tan independiente como
sea posible de la aplicación en sí y de las restantes partes.
Estos módulos que se puedan compilar por separado, pero que tienen
conexiones con otros módulos.

34
Esta fragmentación disminuye el grado de dificultad del problema al
que da respuesta el programa, pues se afronta el problema como un
conjunto de problemas de menor dificultad, además de facilitar la
comprensión del programa.

35
36
La herencia es un mecanismo que permite la definición de una clase a
partir de la definición de otra ya existente. La herencia permite
compartir automáticamente métodos y datos entre clases, subclases y
objetos.

La herencia está fuertemente ligada a la reutilización del código en la


POO. Esto es, el código de cualquiera de las clases puede ser utilizado
sin más que crear una clase derivada de ella, o bien una subclase.

37
Hay dos tipos de herencia: Herencia Simple y Herencia Múltiple. La
primera indica que se pueden definir nuevas clases solamente a partir
de una clase inicial mientras que la segunda indica que se pueden
definir nuevas clases a partir de dos o más clases iniciales. Java sólo
permite herencia simple.

38
Superclase y subclases

El concepto de herencia conduce a una estructura jerárquica de clases


o estructura de árbol, lo cual significa que en la POO todas las
relaciones entre clases deben ajustarse a dicha estructura.

En esta estructura jerárquica, cada clase tiene sólo una clase padre. La
clase padre de cualquier clase es conocida como su superclase. La clase
hija de una superclase es llamada una subclase.

39
40
Polimorfismo quiere decir "un objeto y muchas formas". Esta
propiedad permite que un objeto presente diferentes
comportamientos en función del contexto en que se encuentre.
Por ejemplo un método puede presentar diferentes implementaciones
en función de los argumentos que recibe, recibir diferentes números de
parámetros para realizar una misma operación, y realizar diferentes
acciones dependiendo del nivel de abstracción en que sea llamado.

41
En ocasiones una operación tiene el mismo nombre en diferentes
clases. Por ejemplo, podrá abrir una puerta, una ventana, un periódico,
un regalo o una cuenta de banco, en cada uno de estos casos, realizara
una operación diferente. En la orientación a objetos, cada clase "sabe"
como realizar tal operación.

42
Por ejemplo, podemos crear dos clases distintas: Pez y Ave que
heredan de la superclase Animal. La clase Animal tiene el método
abstracto mover que se implementa de forma distinta en cada una de
las subclases (peces y aves se mueven de forma distinta).

43
El concepto de polimorfismo se puede aplicar tanto a funciones como
a tipos de datos. Así nacen los conceptos de funciones polimórficas y
tipos polimórficos. Las primeras son aquellas funciones que pueden
evaluarse o ser aplicadas a diferentes tipos de datos de forma
indistinta; los tipos polimórficos, por su parte, son aquellos tipos de
datos que contienen al menos un elemento cuyo tipo no está
especificado.

44
El encapsulamiento (o encapsulación), u ocultación de la información,
es el proceso de ocultar todos los detalles de un objeto que no
contribuyen a sus características esenciales.
Esencialmente, significa que aquello que está en el interior de la clase
está oculto; solo las interfaces externas se pueden ver por otros
objetos. El usuario de un objeto nunca necesitara conocer el interior de
la <<clase>>.

45
Para permitir que otros objetos consulten o modifiquen los atributos
de los objetos, las clases suelen presentar métodos de acceso. De esta
manera el acceso a los datos de los objetos es controlado por el
programador, evitando efectos laterales no deseados.

Con el encapsulado de los datos se consigue que las personas que


utilicen un objeto sólo tengan que comprender su interfaz, olvidándose
de cómo está implementada, y en definitiva, reduciendo la complejidad
de utilización.

46
Se dice que un objeto está encapsulado (literalmente, está dentro de
una cápsula) cuando está protegido del acceso indiscriminado de
cualquier persona.
La encapsulación es el proceso que aplica el diseñador de un objeto
para ocultar aquellos detalles del objeto que no son específicamente
necesarios para su uso. A la encapsulación se le denomina también
«ocultamiento de información».

47
48
¿Cuál es la importancia de esto?
En el mundo del software, el encapsulamiento permite reducir el
potencial de errores que pudieran ocurrir. En un sistema que consta
de objetos, éstos dependen unos de otros en diversas formas. Si uno
de ellos falla y los especialistas de software tienen que modificarlo de
alguna forma, el ocultar sus operaciones de otros objetos significara
que tal vez no será necesario modificar los demás objetos.

49
50
Los mensajes son llamados a métodos de un objeto en particular, Por
convenio, el objeto que envía la petición se denomina emisor y el
objeto que recibe la petición se denomina receptor.

• Como todo objeto necesita de unos atributos, es por eso que el envío
de estos soporta todas las interacciones que se realicen en dicho
objeto.
• Para poder enviar y recibir mensajes, los objetos no forman parte del
mismo proceso, ni de una máquina.

51
Están compuestos por:

• El objeto destino, hacia el cual el mensaje es enviado.


• El nombre del método a llamar.
• Los parámetros solicitados por el método.

52
53
54
La Composición es un tipo de relación de alto grado de dependencia
entre la clase contenedora (Persona) y las clases que la componen
(Cabeza, Tórax, Pierna, etc.), es decir, cuando se crea una instancia de
la clase contenedora, deben crearse, como parte de su conformación,
instancias de los objetos que la componen.

55
No tendría sentido, desde el punto de vista de la instancia de Persona,
conformar una persona sin cabeza o sin un tórax; por otro lado,
durante toda la vida del objeto de la clase Persona debe existir el
objeto de la clase Cabeza por la misma razón que antes. En este mismo
sentido, tampoco tendría congruencia el tener una instancia de la clase
Cabeza que nunca haya estado relacionada con una Persona.

56
La Agregación, por otro lado, es un tipo de relación con un bajo grado
de dependencia. Así por ejemplo, una instancia de la clase Persona,
puede tener o no, durante su tiempo de vida (pero no es preciso que lo
tenga desde su creación), un atributo de la clase Ropa sin que ello
afecte su propia existencia; al mismo tiempo que un objeto de la clase
Ropa podría existir independientemente de si es agregado a una
Persona o a un Maniquí (clase que no aparece en el diagrama), por
ejemplo.

57
En este tipo de relación, la existencia de los objetos involucrados es
independiente, lo mismo que su tiempo de vida: un objeto de la clase
Ropa podría seguir existiendo más allá del tiempo de vida del de una
Persona y viceversa, sin que ninguno de los dos se vea afectado.

58
Un tipo de agregación trae consigo una estrecha relación entre un
objeto agregado y sus objetos componentes. A esta se le conoce
como composición.
El punto central de la composición es que el componente se considera
como tal solo como parte del objeto compuesto. Por ejemplo una
camisa esté compuesta de cuerpo, cuello, mangas, botones, ojales y
puños. Suprima la camisa y el cuello será inútil.

59
En ocasiones, un objeto compuesto no tiene el mismo tiempo de vida
que sus propios componentes. Las hojas de un árbol pueden morir
antes que el árbol. Si destruye al árbol, también las hojas morirían.
La agregación y la composición son importantes dado que reflejan
casos extremadamente comunes, y ello ayuda a que cree modelos
que se asemejen considerablemente a la realidad.

60
UML (Unified Modeling Language) es un lenguaje que permite
modelar, construir y documentar los elementos que forman un
sistema software orientado a objetos.
Se ha convertido en el estándar de facto de la industria, debido a que
ha sido impulsado por los autores de los tres métodos más usados de
orientación a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh. En
el proceso de creación de UML han participado, no obstante, otras
empresas de gran peso en la industria como Microsoft, Hewlett-
Packard, Oracle o IBM, así como grupos de analistas y desarrolladores.

61
Un diagrama de clases es un tipo de diagrama estático que describe la
estructura de un sistema mostrando sus clases, atributos y las
relaciones entre ellos.
Los diagramas de clases son utilizados durante el proceso de análisis y
diseño de los sistemas, donde se crea el diseño conceptual de la
información que se manejará en el sistema, y los componentes que se
encargarán del funcionamiento y la relación entre uno y otro. En un
diagrama de clases se pueden distinguir principalmente dos elementos:
clases y sus relaciones.

62
La clase es la unidad básica que encapsula toda la información de un
objeto a través de la cual podemos modelar el entorno en estudio.
En UML, una clase es representada por un rectángulo que posee tres
divisiones.

63
En donde:
• El rectángulo superior contiene el nombre de la clase.
• El rectángulo intermedio contiene los atributos (o variables de
instancia) que caracterizan a la clase (puede ser private, protected o
public).
• El rectángulo inferior contiene los métodos y operaciones, los cuales
son la forma como interactúa el objeto con su entorno (dependiendo
de la visibilidad: private, protected o public).

64
Por ejemplo, podemos representar una clase denominada Figura que
contiene dos atributos (lado1 y lado2) y 3 métodos (método
constructor Figura, método área y método perímetro), de la siguiente
manera:

65
Al analizar la representación de una clase en UML podemos encontrar
lo siguiente:

• Los atributos o características de una clase pueden ser de tres tipos,


que definen su grado de comunicación y visibilidad con el entorno,
estos son:

66
67
Los métodos u operaciones de una clase son la forma en como esta
interactúa con su entorno, éstos pueden tener las características
siguientes:

68
Relaciones

1) Herencia (Especialización/Generalización):

Indica que una clase (clase derivada) hereda los métodos y atributos
especificados por una clase (clase base), por lo cual una clase derivada
además de tener sus propios métodos y atributos, podrá acceder a las
características y atributos visibles de su clase base (public y protected).

69
En la siguiente figura se puede observar un ejemplo de este tipo de
relación:

70
En este ejemplo se especifica que las clases Alumno y Profesor heredan
de la clase Persona, es decir, Alumno y Profesor podrán acceder a las
características de Persona. También puede tener su respectiva
diferenciación, ya que un Alumno puede obtener sus notas previa
evaluación realizada por parte de un Profesor.

71
2) Composición:

La composición es un tipo de relación estática, en donde el tiempo de


vida del objeto incluido está condicionado por el tiempo de vida del
que lo incluye (el objeto base se construye a partir del objeto incluido,
es decir, es parte/todo).

72
En la siguiente figura podrá observar un ejemplo de este tipo de
relación:

73
3) Agregación:

La agregación es un tipo de relación dinámica, en donde el tiempo de


vida del objeto incluido es independiente del que lo incluye (el objeto
base utiliza al incluido para su funcionamiento).

74
En la siguiente figura podrá observar un ejemplo de este tipo de
relación:

75
4) Dependencia o Instanciación (uso):

Representa un tipo de relación muy particular, en la que una clase es


instanciada (su instanciación es dependiente de otro objeto/clase). Se
denota por una flecha punteada.

76
El uso más particular de este tipo de relación es para denotar la
dependencia que tiene una clase de otra, como por ejemplo una
aplicación grafica que instancia una ventana (la creación del Objeto
Ventana está condicionado a la instanciación proveniente desde el
objeto Aplicación).

77
Cabe destacar que el objeto creado (en este caso la Ventana gráfica) no
se almacena dentro del objeto que lo crea (en este caso la Aplicación).

78
5) Asociación:

La relación entre clases conocida como Asociación, permite asociar


objetos que colaboran entre sí. Cabe destacar que no es una relación
fuerte, es decir, el tiempo de vida de un objeto no depende del otro.

79
En la siguiente figura podrá observar un ejemplo de este tipo de
relación:

80
Del ejemplo se puede deducir que una persona puede usar diferentes
tipos de ropa (varias ropas), en cambio una ropa solo puede ser usada
por sólo una persona en un momento determinado.

81
Los elementos adicionales que pueden aparecer en una relación de
este tipo son los siguientes:

▪ Rol: Identifica con nombres a los elementos que aparecen en los


extremos de la línea que denota la relación, dicho nombre describe la
semántica que tiene la relación en el sentido indicado.
▪ Multiplicidad: La multiplicidad de una relación determina cuantos
objetos de cada tipo intervienen en la relación. Presenta las
siguientes características:

82
83
✓Cada asociación tiene dos multiplicidades (una para cada extremo de
la relación).
✓Para especificar hay que indicar que la multiplicidad mínima y
máxima (mínima...máxima).
✓Cuando a multiplicidad mínima es 0, la relación es opcional.
✓Una multiplicidad mínima mayor igual que 1 establece una relación
obligatoria

84
Actividad: Realizar los diagramas de clase en
DIA

85
Fuentes de información
1. Budd, T. (2002). Object Oriented Programming. Third edition: Addison Wesley.
2. Ceballos F. (2003). Programación Orientada a Objetos con C++. 3ra. Edición: Editorial Ra-Ma
3. Ceballos J. (2012) Microsoft C# -Curso de Programación. España: Alfaomega
4. Clark D., (2013). Begining C# Object-Oriented Programming, Apress.
5. Craig I. (2002). The Interpretation of Object-Oriented Programming Languages. 2nd Edition: Springer.
London.
6. Dean J. y Dean R. (2009) Introducción a la programación con Java.: McGraw Hill
7. Deitel P., Deitel H. (2013). Como programar en java. 9a. Edición. Pearson.
8. Doyle, B (2013) C# Programming: From Problem Analysis to Program Design. Cengage Learning
9. Groussard, T. (2009) Visual Basic.NET (VB.NET) - Programe con Visual Studio 2008. Espana: Eni Ediciones
10. Groussard, T. (2011) Recursos Informáticos C#4 Los fundamentos del lenguaje- desarrollar con visual
estudio 2010. España: Eni Ediciones.

86
Fuentes de información
11. Gutiérrez F., Duran F., Pimentel E. (2007). Programación Orientada a Objetos con JAVA: Ediciones Paraninfo,
S.A.
12. Harvey M. (2008). Como programa en Java. México: Prentice Hall.
13. Holmes B., Joyce D. (2001). Object-Oriented Programming with JAVA. Jones and Barlett: Canada. Publishers
Inc.
14. Joyanes L. (2011). Fundamentos de programación: Algoritmos, Estructuras de Datos y Objetos. 3ra. Edición.
Mac-Graw Hill
15. Joyanes, L. y Zahonero, I. (2011) Programación en Java 6. España: McGraw Hill
16. Larman G. (2002). UML y Patrones 2/E: Pearson Educacion.
17. Marrer G. (2009). Fundamentals of Programming with Object Orientated Programming. Python Edition.
Ebook Edition.
18. Muñoz C., Nino A. Vizcaino A. (2002). Introducción a la Programación con Orientación a Objetos: Pearson
Educacion.

87
Fuentes de información
19. Schildth H. (2002). Fundamentos de programación en Java: Mac-Graw Hill
20. Solana Aroa (2009). Programación con C# 4.0. Madrid, España.
21. Velez Serrano, J.F., Peña Abril, A., Gortázar Bellas, F. Sánchez Calle, A. (2010) Diseñar y Programar, Todo Es
Empezar: Una Introducción a la Programación Orientada a Objetos Usando UML Y JAVA (EBOOK).
22. VV.AA. (2004). C/C++ Y Java. Como programar (4ª Ed). México
23. VV.AA., (2006) Introducción a la Programación Orientada a Objetos: Universidad de Alicate. Servicio de
Publicaciones.
24. Warnes D., Kolling M.(2007). Programación Orientada a Objetos con Java. 3ra Edición: Prentice- Hall.
25. BlueJ, (2014). A free Java Development Environment designed for beginners. Disponible en internet en
www.bluej.org. Fecha de acceso: 13 de Febrero de 2014.
26. Greenfoot, (2014). Teach and learn java programming. Disponible en internet en www.greenfoot.org. Fecha
de acceso: 13 de Febrero de 2014.
27. Jeroo, (2014). Jeroo. Disponible en internet en http://home.cc.gatech.edu/dorn/jeroo. Fecha de acceso: 13
de Febrero de 2014

88

También podría gustarte