Está en la página 1de 346

Universidad

Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

UNIDAD 1

EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

En el siguiente esquema se representan los contenidos temáticos


correspondientes a la primer unidad temática EL PARADIGMA DE LA
PROGRAMACIÓN ORIENTADO A OBJETOS, cada uno de estos temas
guardan relación entre sí.

SECUENCIA DIDÁCTICA «UNIDAD 1»

Figura 1. Mapa de contenidos temáticos

1.1. Elementos del modelo de


1 .4. Lenguaje de modelado objetos
unificado

- •
- 1 1 1.
1.1.1 Objetos
1..4.2 Elementos 1.1.2 Clases
1.1.3 Abstracción
1.1.4 Modularidad
1.1.S Encapsulamiento
UNIDAD 1 1.1.6 Herencia
EL PARADIGMA DE LA 1.1.7 Polimorfismo
PROGRAMACIÓN
ORIENTADO A OBJETOS

1.3.1 Definición
1.3-2 Metodología de Booch 1-2.1 Definición
1.3.3 Metodología de James 1-2.2 Característicasde la POO
Rumbaugh 1-2.3 Características del LOO

Fuente: UDEMEX 2019

1
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

INTRODUCCIÓN

El contenido temático de esta unidad, tiene como objetivo mostrar una


panorámica inicial de todos aquellos aspectos que han permitido que el
paradigma de la Orientación a Objetos (OO) sea actualmente una
necesidad en la industria de desarrollo de software.

En la primera sección, revisaras la terminología y conceptos básicos


relacionados con el Modelo de Objetos. Se exponen además, los
principios fundamentales de la Orientación a Objetos que son:
abstracción, modularidad, encapsulamiento, herencia y polimorfismo.
En el segundo tema, estudiaras las características de la Programación
y Lenguajes Orientados a Objetos, el cual se ha convertido durante
últimas dos décadas en el paradigma de programación dominante. En el
tercer capítulo conocerás las metodologías Orientadas a Objetos y cómo
han evolucionado para ayudar a los desarrolladores a explotar el poder
de los lenguajes de programación orientados a objetos, finalmente
conocerás al Lenguaje Unificado de Modelado, el cual es el lenguaje de
modelado de sistemas de software más conocido y utilizado en la
actualidad.

Cada contenido temático de esta unidad ha sido diseñado apegado a la


nueva estrategia de aprendizaje por competencias, en la cual por sus
características de modalidad a distancia o virtual y caracterizado por el
auto aprendizaje, es necesario que sigas todas las instrucciones, así
como dar seguimiento a las actividades de aprendizaje, la realización y
entrega de tus proyectos, a su vez demostrar interés en las

2
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

evaluaciones y asesorías para que puedas alcanzar el éxito y cumplas tu


meta de obtener la licenciatura.

Te invitamos a que apliques tus capacidades cognoscitivas como:


pensamiento, conocimiento, comprensión, aplicación, análisis, síntesis y
evaluación, para su máximo aprovechamiento.

COMPETENCIAS ESPECÍFICAS

Figura 2. Competencias específicas unidad 1

Comprende y describe los conceptos principales del paradigma de programación


orientado a objetos, a través del análisis exhaustivo de la información, para realizar
CONOCIMIENTOS de manera clara y sencilla los ejercicios del tema.

Investiga a través de diversas fuentes de información las metodologías orientadas a


HABIUDADES objetos, para enriquecer el conocimiento sobre el tema.

Entrega de manera oportuna lo solicitado en la unidad de aprendizaje, a través de una


actitud responsable, cumpliendo con las fechas de entrega, para continuar
ACJITUDES desarrollando sus habilidades blandas.

0®@
Fuente: UDEMEX 2019

3
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

1.1. ELEMENTOS DEL MODELO DE OBJETOS

Antes de adentrarnos en los detalles de los elementos del modelo de


objetos, veamos algunas definiciones importantes.

'' El modelado es una parte central de todas las


actividades que conducen a la programación de
buen software. Se construyen modelos para

�--------------''
comunicar la estructura deseada y el
comportamiento del sistema. (Jiménez, R., 2003).

|||
Estos modelos permiten, además, visualizar y controlar la arquitectura
del sistema. Construimos modelos también con la finalidad de
comprender mejor el sistema que estamos realizando, muchas veces
descubriendo oportunidades para la simplificación, la reutilización y para
controlar el riesgo. (Jiménez, R., 2003). De hecho, se construyen
modelos de sistemas complejos porque no es posible comprender el
sistema en su totalidad.

A través del modelado, se consiguen cuatro objetivos:

, I I 1. Ayudar a visualizar cómo es o debería ser un sistema


• • 2. Específícar la estructura o el comportamiento de un sistema
3. Proporcionar plantillas que guíen la construcción de un
sistema
4. Documentar las decisiones adoptadas. [Iópez, R., 2003)

4
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

'' Orientado a ob1etos,, signinfica que el


software se organiza como una colecdón de
objetos discretos que contienen tanto
estructuras de datos como comportamiento.
(Rossl, B.� IBritos, P. y García R., 2012).

La Orientación a Objetos (OO), por tanto, es una nueva forma de


entender el desarrollo del software, que abarca un conjunto de
metodologías y herramientas para el modelado y la implementación del
software, las cuales hacen más fácil la construcción de sistemas
complejos a partir de componentes individuales. (López, R., 2003).

Enfoque o Perspectiva Orientada a Objetos EOO

En este enfoque, el principal bloque de construcción de todos los


sistemas software es el objeto o clase. Para explicarlo sencillamente, un
objeto es una cosa, generalmente traída del vocabulario del espacio del
problema o del espacio de la solución; una clase es una descripción de
un conjunto de objetos similares. En la figura 3 se describe los
componentes de un objeto:
Figura 3. Componentes de un objeto

comportamiento

•Puede nombrarse o •Generalmente hay •Se le pueden hacer


distinguirse de otra algunos datos cosas al objeto, y él a
manera de otros asociados a él su vez puede hacer
objetos cosas a otros objetos

Fuente UDEMEX (2019) con información de: López, R., 2003

5
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
E'uM
o, Universidad
Digital dEI Estado de Mé XICO
.

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Cada objeto contiene su propio comportamiento bien definido. Los


objetos hacen cosas, y a los objetos se les pide que hagan lo que hacen
enviándoles mensajes. Puesto que esta descomposición está basada en
objetos y no en algoritmos, se le llama descomposición orientada a
objetos. (López, R., 2003).
Ahora revisemos a detalle los elementos del modelo de objetos.

1.1.1 Objetos

Ilustración 1. Elementos del modelo de objetos

Fuente: López Takeyas B. 2016

6
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Un objeto en el mundo real

''___Un objeto es un elemento real o


abstracto, que tiene un estade, un
com p-0rtamien·1:o y u na iiden·tidad.
(Izquierd 01 L.., 2 O 1 O). .,,
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. Un objeto puede ser también un concepto abstracto como
una Computadora que es capaz de recibir un conjunto de números y los
ordena ascendente o descendentemente.

Pensemos cómo se plantea un


problema en la realidad:

Lo que hay en la realidad son entidades (objetos o agentes). Estos


objetos poseen un conjunto de propiedades o atributos, y un
conjunto de métodos mediante los cuales muestran su
comportamiento. Y no sólo eso, también todo un conjunto de
interrelaciones entre las entidades, guiadas por el intercambio de
mensajes; las entidades del problema responden a estos mensajes
mediante la ejecución de ciertas acciones. (Izquierdo, L., 2010).

Podemos decir entonces que las características que definen un objeto


son tres: su estado, su comportamiento y su identidad.

Estado.

7
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

,,
El estado de un objeto está
determinado por los valores que
poseen sus atributos en un momento
dad o. (Ca rba llo 1 'Y.1 2007)1.
,_

Los atributos de un objeto contienen valores que determinan el estado


del objeto durante su tiempo de vida. Se implementan con variables,
constantes y estructuras de datos (similares a los campos de un
registro). (Carballo, Y., 2007).

El estado 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). (ITESCAM, 2014).

"'
""A..
� �
Véain §je! a bns eje ples con a a tos ca e retos:

Objeto: ALUMNO (Luis Pérez Gómez)


Cuadro 1. Estructura estática

• Estructura estática (su


contenido no importa).
Nombre y apellidos:
Edad:
Sexo:
Dirección:
Curso:
Asignaturas:

Fuente: UDEMEX 2019

8
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
E'uM
o, Universidad
Digital dEI Estado de Mé XICO
.

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Cuadro 2. Estructura dinámica

• Estructura dinámica (en 2013). • Estructura dinámica (en 2014).


Nombre y apellidos: Luis Pérez Nombre y apellidos: Luis Pérez
Gómez Gómez
Edad: 17 Edad: 18
Sexo: masculino Sexo: masculino
Dirección: Juárez, 1024 Dirección: Hidalgo, 1008
Curso: 3º Curso: 4°
Asignaturas: Matemáticas, Física, Asignaturas: Biología, Estadística,
Química, Inglés I, Historia Sociología, Computación, Ingles11
Fuente: UDEMEX 2019

Nota: El alumno Luis Pérez Gómez ha cambiado, entre 2013 y


2014, de edad, dirección, curso y asignaturas, porque es un
objeto activo.

Objeto: Computadora

• Estructura estática

Celdas de memoria: c1, c2,…, cn


Variable de estado: ve
• Estructura dinámica

Si se le pide al objeto que ordene ascendentemente los


números: 4, -5, 3, 10, -1, 2 su estructura dinámica va variando de la
siguiente forma:

Estado inicial: Los números se leen y se almacenan en las


celdas.
Tabla 1. Estado inicial

c1 c2 c3 c4 c5 c6

4 -5 3 10 -1 2

Fuente: UDEMEX 2019

9
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

ve=0

Estado final ordenado: Los números han sido ordenados


ascendentemente.

Tabla 2. Estado final ordenado

c1 c2 c3 c4 c5 c6

-5 -1 2 3 4 10

Fuente: UDEMEX 2019

ve=1

Nota: La variable de estado (ve) del objeto Computadora toma los


valores de 0 cuando la información esté sin ordenar, 1 cuando la
información esta ordenada ascendentemente ó 2, cuando la
información esta ordenada descendentemente.

• El hecho de que un objeto tenga un estado


¿J
a implica Que ocupa un espacio, sea en el
mundo real o en la memoria ole la

u e..1.• creado Computadora, exista durante un tiempo,


cambie el valor de sus atributos, y sea
y destruido.

Así, el objeto alumno Luis Pérez Gómez descrito anteriormente se crea


cuando se le matricula en la Universidad; 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 Universidad.

Comportamiento

10
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

'' El comporla01ie111to de un objeto viene


determinado por· la forma de actuar al
recibir un mensaje para que realice una
acción, (ITESGAIM, 2014).

----------------''
Un mensaje es una orden que se manda a un objeto para que realice
una operación con un propósito específico. (ITESCAM, 2014).

, 1 I Ejemplo:
,. • Así1 ,e11 el caso del olbjeto Computadora, se
le podrían mandar los si,guient,es mensajes:

1. leer_números, para que leyera números desde el teclado y


los almacenara en las celdas de memoria: c1,c2,…,cn.
2. ordenar_ascendentemente, para que el contenido
almacenado en c1,c2,…,cn, quedase ordenado
ascendentemente.
3. ordenar_descendentemente, para obtener un contenido
con orden descendente.
4. indicar_estado, para que especificara mediante la variable
de estado ve si los números están sin ordenar (ve=0)
ordenados ascendentemente (ve=1), u ordenados
descendentemente (ve=2).
5. mostrar_números, para que visualizase por la pantalla de
la Computadora los números almacenados en las celdas de
memoria c1, c2,…,cn.

11
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

.-·-
GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

' " Un mensaje viene defin.ido por- tres


componentes:

a) El objeto receptor del mensaje, es decir, al objeto que se envía el


mensaje.
b)El selector del mensaje, que es la acción que se quiere que
realice el objeto.
c) Los argumentos, que son los valores que se transmiten con el
selector y que, en muchos casos, pueden ser nulos.

Por ejemplo, Computadora.Ordenar_ascendentemente(), es un


mensaje que se envía al objeto receptor Computadora, para que
ordene ascendentemente los números (selector), y no se transmite
ningún argumento.

Mientras que los mensajes:

Luis_Perez_Gomez.Asignaturas(curso)

Luis_Perez_Gomez.Asignaturas(todas)

El primer mensaje señala, 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.

Identidad

12
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

'' Se e111tJi en de por identidad de u111


objeto la propiedad característica
que tiene ese objeto que le
distingue de todos los demás .
...__,_T_E_s
r _A_M_
c ._
, _1_4_
0 .) ,,,

2
En otras palabras: dos objetos serán distintos aun cuando los valores
de todos sus atributos (tales como el nombre y el tamaño) sean
idénticos. Realmente, es difícil encontrar un dato específico que
permanentemente identifique al objeto. (ITESCAM, 2014).

Sí, 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? ¿Su curso? ¿Sus asignaturas?- Cambia continuamente.

¿Su dirección? ¿Su sexo? También pueden cambiar.

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.

A través de estos ejemplos como hemos podido observar los objetos de


interés durante el desarrollo de software no sólo son tomados de la vida
real (objetos visibles o tangibles), también pueden ser abstractos.

13
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

RECUERDA

En general los o jetos son


entidades que juegan un rol
bien definido en el dominio del
problema. (Carballo, Y., 2007),
y pueden modelar diferentes
cosas como; dispositivos, roles,
organizaciones, sucesos,
ventanas (de Windows), iconos,
etc. (Arenas, l., 2008).

Objetos de software

Ilustración 2. Representación visual de un objeto

Vaiables
(Estado)
Métodos
(Compo,tarrierio)

Representación visual de un objeto

Fuente: http://jhonatan-cubides.blogspot.com/2017/01/programacion-orientada-objetos.html

14
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Los objetos, de software son

,,
conceptualmente similares a los objetos reales
del mundo: también ellos constan de estado y
el comportamiento relacionado, (ITESCAM1
2CH4) .
._.__
.

Un objeto es un paquete de software del estado y el comportamiento


relacionado. Los objetos de software a menudo se utilizan para modelar
los objetos del mundo real que se encuentra en la vida cotidiana. 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). (ITESCAM,
2014).

El comportamiento general de los objetos dentro de un sistema se


describe o representa mediante sus operaciones o métodos. Los
métodos se utilizarán para obtener o cambiar el estado de los objetos,
así como para proporcionar un medio de comunicación entre objetos.
(Carballo, Y., 2007).

'' Un método es una acción que determina


como debe de actuar un objeto cuando
recibe un mensaje. (Arenas, 1.. r 2008).

- - - --------''
Un método también puede enviar mensajes a otros objetos, para
realizar una acción o para pedir información. (Arenas, l., 2008).

15
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Ocultar el estado interno y requerir toda la interacción se realiza a


través de los métodos de un objeto que se conoce como encapsulación
de datos - un principio fundamental de la programación orientada a
objetos. (ITESCAM, 2014).

En la Figura 5 sobre la representación visual de un objeto se muestra el


núcleo de variables miembro del objeto protegido por una membrana
protectora de métodos o funciones miembro es la representación ideal
de un objeto y es el ideal que los programadores de objetos suelen
buscar. Sin embargo, debemos matizarlo. A menudo, por razones
prácticas, es posible que un objeto desee exponer alguna de sus
variables miembro, o proteger otras de sus propios métodos o funciones
miembro. Los niveles de protección determinan qué objetos y clases
pueden acceder a qué variables o a qué métodos. (Izquierdo, L., 2010).

Consideremos una bicicleta, por ejemplo:


Ilustración 3. Niveles de protección

Bicicleta modelada como


un objeto:

Atributos:
• Velocidad
• Cadencia
• Marcha

Métodos:
• Cambiar marcha
• Frenar
• Cambiar cadencia

Fuente: Izquierdo, L., 2010

16
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Un objeto que modelase una bicicleta en el mundo real tendría variables


que indicararían el estado actual de la bicicleta: su velocidad es de 20
km/h, su cadencia de pedaleo 90 r.p.m. y su marcha actual es la 5ª.
Estas variables se conocen formalmente como variables instancia o
variables miembro porque contienen el estado de un objeto bicicleta
particular y, en programación orientada a objetos, un objeto particular
se denomina una instancia. (Izquierdo, L., 2010).

Además de estas variables, el objeto bicicleta podría tener métodos para


frenar, cambiar la cadencia de pedaleo, y cambiar de marcha (la
bicicleta no tendría que tener un método para cambiar su velocidad pues
ésta es función de la cadencia de pedaleo, la marcha en la que está y de
si los frenos están siendo utilizados o no, entre otros muchos factores).
Estos métodos se denominan formalmente métodos instancia o métodos
miembro, ya que cambian el estado de una instancia u objeto bicicleta
particular.

El diagrama del objeto bicicleta muestra las variables objeto en el núcleo


o centro del objeto y los métodos rodeando el núcleo y protegiéndolo de
otros objetos del programa. Este hecho de empaquetar o proteger las
variables miembro con los métodos miembro se denomina encapsular
o encapsulamiento. (Izquierdo, L., 2010).

17
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Mensaje

Ilustración 4. Ejemplificación de Mensaje

Cuando un objeto A quiere que


otro objete B ejecute una de sus
funciones miembro (métodos de
B). e.1 obiero A manda. un
mensaje al objeto B.

Fuente: Izquierdo, L., 2010

Normalmente un único objeto por sí solo no es muy útil. En un sistema


los objetos trabajan en conjunto y se comunican entre ellos por medio
de mensajes. Un objeto envía a otro un mensaje para realizar una
operación, y el objeto receptor ejecutara la operación. (Jiménez, R.,
2003).

REFLEXIONA:

Sobre el siguiente ejemplo

Una bicicleta (a partir de ahora particularizaremos) colgada de un


gancho en el garaje no es más que una estructura de aleación de
titanio y un poco de goma. Por sí sola, tu bicicleta (por poner una

18
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

bicicleta en concreto) es incapaz de desarrollar ninguna actividad. Tu


bicicleta es realmente útil en tanto que otro objeto (tú) interactúa con
ella (pedalea). (ITESCAM, 2014).

'' Un mensaje es una comunicación


dirigiida a un objeto, que l,e ordena que
ej,ecute uno de sus métodos pudiendo
o no nevar algunos parámetros.
(Arenas, 1., 2008). ''

En ocasiones, el objeto que recibe el mensaje necesita más información


para saber exactamente lo que tiene que hacer; por ejemplo, cuando se
desea cambiar la marcha de una bicicleta, se debe indicar la marcha a la
que se quiere cambiar. Esta información se pasa junto con el mensaje
en forma de parámetro. (Izquierdo, L., 2010).

En general, un objeto aparece como un componente más de un


programa o una aplicación que contiene otros muchos objetos. Es
precisamente haciendo uso de esta interacción como los programadores
consiguen una funcionalidad de mayor orden y modelar
comportamientos mucho más complejos.

RE IFLEXIO NA:

Solbrn el sigui,ent,e ejemplo

19
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
IJ� Universidad
Wi Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Un objeto en Windows como una ventana de alguna aplicación,


puede cerrarse, maximizarse o restaurarse (métodos) de acuerdo
al mensaje que le sea enviado.

Identificación

En el mundo real los objetos se limitan a existir, pero dentro de un


entorno de computación cada objeto posee una identificación mediante
la cual se puede hacer alusión a él de modo exclusivo. (Rossi, B.,
Britos, P. y García, R., 2012).

Un objeto se identifica por un nombre o un identificador único que lo


diferencia de los demás. Ejemplo: el objeto Cuenta de Ahorros número
12345 es diferente al objeto Cuenta de Ahorros número 25789. En este
caso el identificador que los hace únicos es el número de la cuenta.
(Carballo, Y., 2007).

1.1.2 Clases

Ilustración 5 Representación gráfica de una clase

Una clase representa un conjunto de Objetos que comparten una estructura común y un
comportamiento común

Fuente: López, R. 2003

20
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Normalmente en el mundo real existen varios objetos de un mismo tipo


o de una misma clase.

Una clase es una descripción de un conjunto de objetos similares.


(López, R., 2003)

Clasificación significa que los objetos con la misma estructura de datos


(atributos) y comportamiento (operaciones) se aglutinan para formar
una clase. (Rossi, B., Britos, P. y García, R., 2012).

Una clase es una abstracción que describe propiedades importantes


para una aplicación y que ignora el resto. La selección de clases es
arbitraria y depende de la aplicación. Una clase contienen el molde
(estructura, esquema) a partir del cual se crean los objetos que
pertenecen a ella y el código que debe ejecutarse cada vez que un
objeto de la clase recibe un mensaje. Una clase contiene la descripción
de las características comunes de todos los objetos que pertenecen a
ella: la especificación del comportamiento, la definición de la estructura
interna y la implementación de los métodos. (Rossi, B., Britos, P. y
García, R., 2012).

'' La clase puede definir.se como la agrupación o

,,
colección de objetos que comparten una
estructura común y un comportamiento común.
(Carhallo, Y.J 2007).
,.__

Es una plantilla que contiene la descripción general de una colección de


objetos. Consta de atributos y métodos que resumen las características
y el comportamiento comunes de un conjunto de objetos. (Carballo, Y.,
2007).

21
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Si bien para el contexto del Enfoque Orientado a Objetos (EOO) un


objeto es una entidad que encapsula datos (atributos) y acciones o
funciones que los manejan (métodos). También para el Enfoque
Orientado a Objetos un objeto se define como una instancia o
particularización de una clase. (Carballo, Y., 2007)

Todo objeto (también llamado instancia de una clase), pertenece a


alguna clase. Mientras un objeto es una entidad concreta que existe en
el tiempo y en el espacio, una clase representa solo una abstracción.
Todos aquellos objetos que pertenecen a la misma clase son descritos o
comparten el mismo conjunto de atributos y métodos. Todos los objetos
de una clase tienen el mismo formato y comportamiento, son diferentes
únicamente en los valores que contienen sus atributos. Todos ellos
responden a los mismos mensajes. (Carballo, Y., 2007).

REFLEXIONA:
Sobre el siguiente ejemplo

Mi bicicleta es una de las muchas bicicletas que existen en el mundo.


Usando la terminología de la programación orientada a objetos, diremos
que mi bicicleta es una instancia de la clase de objetos conocida como
bicicletas. Todas las bicicletas tienen algunos estados o atributos (color,
marcha actual, cadencia actual, dos ruedas) y algunos métodos
(cambiar de marcha, frenar) en común. Sin embargo, el estado
particular de cada bicicleta es independiente del estado de las demás
bicicletas. La particularización de estos atributos puede ser diferente. Es
decir, una bicicleta podrá ser azul, y otra roja, pero ambas tienen en

22
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

común el hecho de tener una variable “color”. De este modo podemos


definir una plantilla de variables y métodos para todas las bicicletas. Las
plantillas para crear objetos son denominadas clases. (Izquierdo, L.,
2010).

Ilustración 6. Objetos o instancias de la clase bicicletas

OBJETO O �STA. CIA DE LA CLASE BICICLETAS

Velocidad actual • ll Vek>cidad actual= 20


Cadeooa actual = 180 Cadeooa actual = 90

Maicha actual e 2 Maicha actual = 4

MBicicleta T�icicleta

Fuente: http://luis.izqui.org/resources/ProgOrientadaObjetos.pdf

Una clase es una plantilla que define las variables y los métodos que
son comunes para todos los objetos de un cierto tipo. (Cáceres, J.,
2011).

Después de haber creado la clase bicicleta, podemos crear cualquier


número de objetos bicicleta a partir de la clase. Cuando creamos una
instancia de una clase, el sistema reserva suficiente memoria para el
objeto con todas sus variables miembro. Cada instancia tiene su propia

23
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

copia de las variables miembro definidas en la clase. (Izquierdo, L.,


2010).

-'
Se tienen tres tipos de clase que son:
1 I -Abstracta. - Es muy general (ejemplo: Animal).
• -Común, - Es intermedia (ejemplo: Mamíferos).
•Final. - Es muy específica (ejemplo: Gato
Siames).

La herencia (que se detallara más adelante), maneja una estructura


jerárquica de clases o estructura de árbol (Estructura de Datos), con lo
que en la Programación Orientada a Objetos todas las relaciones entre
clase se ajustan a esta estructura.
En esta estructura cada clase tiene una sola clase padre, la cual se
conoce como superclase y la clase hija de una superclase se conoce
como subclase.

 Superclase. La superclase, se puede definir en términos sencillos


como la clase padre de alguna clase específica y puede tener
cualquier número de subclases.

 Subclase. La subclase, es la clase hija de alguna clase específica


y solo puede tener una superclase. (Arenas, l., 2008).

Características Generales de una Clase

Una clase es un nivel de abstracción alto. La clase permite describir un


conjunto de características comunes para los objetos que representa.
Ejemplo: La clase Avión se puede utilizar para definir los atributos (tipo
de avión, distancia, altura, velocidad de crucero, capacidad, país de
origen, etc.) y los métodos (calcular posición en el vuelo, calcular
velocidad de vuelo, estimar tiempo de llegada, despegar, aterrizar,
24
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

volar, etc.) de los objetos particulares Avión que representa. (Carballo,


Y., 2007).

lln� sobre el S:i,gl!.liente contenido

Un objeto es una instancia de una clase. Cada objeto concreto dentro de


un sistema es miembro de una clase específica y tiene el conjunto de
atributos y métodos especificados en la misma. Las clases se relacionan
entre sí mediante una jerarquía. Entre las clases se establecen
diferentes tipos de relaciones de herencia, en las cuales la clase hija
(subclase) hereda los atributos y métodos de la clase padre
(superclase), además de incorporar sus propios atributos y métodos.
Ejemplos, Superclase: Clase Avión, Subclases de Avión: Clase Avión
Comercial, Avión de Combate, Avión de Transporte. . (Carballo, Y.,
2007).

Los nombres o identificadores de las clases deben colocarse en singular


(clase Animal, clase Carro, clase Alumno). (Carballo, Y., 2007).

Como podemos observar la orientación a objetos se refiere a algo más


que tan solo atributos y acciones; también considera otros aspectos.
Dichos aspectos se conocen como abstracción, modularidad,
encapsulamiento, herencia y polimorfismo. Otros aspectos importantes
de la orientación a objetos son: él envió de mensajes, las asociaciones y
la agregación. Ahora examinemos cada uno de estos conceptos.

25
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

1.1.3 Abstracción

Ilustración 7. Ejemplificación del concepto de abstracción

o to. en r·ela(;(ln

Fuente: https://sites.google.com/site/contenidospoo/abstraccion

La abstracción es una técnica para crear,


comprender o manejar sistemas complejos,
mediante la abstracción creamos modelos de lla

�---------------''
reahdad. (Cachero. C., 2013).

26
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

La complejidad de los problemas que podemos resolver está


directamente relacionada con el tipo (qué estoy abstrayendo) y calidad
de la abstracción. (Cachero. C., 2013).
La abstracción se refiere a quitar las propiedades y acciones de un
objeto para dejar solo aquellas que sean necesarias o de ignorar
aquellos aspectos de un fenómeno observado que no son relevantes,
con el objetivo de concentrarse en aquellos que si lo son. Una
abstracción denota las características esenciales de un objeto (datos y
operaciones), que lo distingue de otras clases de objetos. Decidir el
conjunto correcto de abstracciones de un determinado dominio, es el
problema central del diseño orientado a objetos.

Los mecanismos de abstracción son usados para extraer y definir del


medio a modelar, sus características y su comportamiento. (Carballo, Y.,
2007).

Estos mecanismos son:

'' La generalización es el mecanismo de abstracción mediante


el cual un conjunto de cllases de objetos son agrupados en
una dase de nivel superior (Superclase), donde las
semejanzas de las cllases constituyentes (Subclases) son
enfatizadas, y las diferencias entre ellllas son ignoradas. [Rossi,
IB., Britos, P. y García, R., 2012).. ,,,

En consecuencia, a través de la generalización, la superclase almacena


datos generales de las subclases, y las subclases almacenan sólo datos
particulares. La especialización es lo contrario de la generalización. La

27
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

donde las semejanzas de las clases constituyentes (Subclases) son


enfatizadas, y las diferencias entre ellas son ignoradas. En
consecuencia, a través de la generalización, la superclase almacena
datos generales de las subclases, y las subclases almacenan sólo datos
particulares. La especialización es lo contrario de la generalización. La
clase Médico es una especialización de la clase Persona, y a su vez, la
clase Pediatra es una especialización de la superclase Médico.

'' La agregación es el mecanismo de abstracción


por el cual una clase de objeto es definida a
partir de sus partes (otras clases de objetos).

,___
(Rossi, B., Britos, IP. y García, R., 2012).
,,
Mediante agregación se puede definir por ejemplo un computador, por
descomponerse en: la CPU, la ULA, la memoria y los dispositivos
periféricos. El contrarío de agregación es la descomposición.

''
,,
La cla.siificación1 significa ,que los. obdetos con la misma esbrurlu ra de
datos (atributos) y compo:rtamielili:,o (operacioliles} se a,�¡11utillcH'll parra
fcrmer una clase. (Rossi, B., Bnitos, P. y· García, R.r 2012) .

..__

La clasificación consiste en la definición de una clase a partir de un


conjunto de objetos que tienen un comportamiento similar. La
ejemplificación es lo contrario a la clasificación, y corresponde a la
instanciación de una clase, usando el ejemplo de un objeto en
particular.

28
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

1.1.4 Modularidad

Ilustración 8. Ejemplificación del concepto modularidad

Modularidad
Fuente:
https://sites.google.com/site/contenidospoo/modularidadyourpage%27stitle

'' Modularidad es la propiedad que permite


1

tener il ndep e ndenda entre las diferentes partas


de un sistema. (Carbal!o, Y.1 2007) ..
,,
.._

La modularidad consiste en dividir un programa en módulos o partes,


que pueden ser compilados separadamente, pero que tienen conexiones
con otros módulos. En un mismo módulo se suele colocar clases y
objetos que guarden una estrecha relación. El sentido de modularidad

29
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

está muy relacionado con el ocultamiento de información. (Carballo, Y.,


2007).

La modularidad es la capacidad que tiene un sistema de ser estudiado,


visto o entendido como la unión de varias partes que interactúan entre
sí y que trabajan para alcanzar un objetivo común, realizando cada una
de ellas una tarea necesaria para la consecución de dicho objetivo. Cada
una de esas partes en que se encuentre dividido el sistema recibe el
nombre de módulo. Idealmente un módulo debe poder cumplir las
condiciones de caja negra, es decir, ser independiente del resto de los
módulos y comunicarse con ellos (con todos o sólo con una parte) a
través de unas entradas y salidas bien definidas. (Rodríguez, A., 2008).

Un sistema complejo puede dividirse en piezas más simples llamadas


módulos, un sistema compuesto de módulos es llamado modular. El
principal beneficio de la modularidad es que permite la aplicación del
principio de separación de intereses en dos fases: al enfrentar los
detalles de cada módulo por separado ignorando detalles de los otros
módulos, y al enfrentar las características globales de todos los módulos
y sus relaciones para integrarlos en un único sistema coherente. Si estas
fases son ejecutadas en ese orden se dice que el sistema es diseñado de
abajo hacia arriba (bottom up), en el orden inverso se dice que el
sistema es diseñado de arriba hacia abajo (top down).

El principio de modularidad tiene tres 3 objetivos principales: capacidad


de descomponer un sistema complejo, capacidad de componerlo a partir
de módulos existentes y comprensión del sistema en piezas (o pedazos).
(Rodríguez, A., 2008).

30
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

1.1.5 Encapsulamiento

Ilustración 9. Ejemplificación del concepto encapsulamiento

Fuente: https://www.cs.buap.mx/~ygalicia/POO.pdf

Al hablar de los objetos, es importante comentar el concepto de


encapsulación. Se dice que un objeto está encapsulado cuando está
protegido del acceso indiscriminado de cualquier persona. La idea
central del encapsulamiento es esconder los detalles y mostrar lo
relevante. Permite el ocultamiento de la información separando el
aspecto respondiente a la especificación de la implementación; de esta
forma, distingue el qué hacer del cómo hacer. La especificación es
visible al usuario, mientras que la implementación se le oculta. La
estructura interna de un objeto normalmente está oculta a los usuarios
del mismo. Los datos del objeto están disponibles solo para ser
manipulados por los propios métodos del objeto. El único mecanismo

31
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

que lo conecta con el mundo exterior es el paso de mensajes.


(Carballo, Y., 2007).

Construir códigos en objetos individuales de software proporciona una


serie de beneficios, incluyendo:

 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

 Protección de información: Un objeto tendrá una interfaz


pública perfectamente definida que otros objetos podrán usar para
comunicarse con él. De esta forma, los objetos pueden mantener
información privada y pueden cambiar el modo de operar de sus
funciones miembros sin que esto afecte a otros objetos que usen
estas funciones miembro. Es decir, no necesitamos entender cómo
funciona el mecanismo de cambio de marcha para hacer uso de él

 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

 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. Si se rompe un perno, que sustituya lo roto, no
toda la máquina. (ITESCAM, 2014).
32
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
UO, Universidad
EM Digital dEI Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

1.1.6 Herencia

Ilustración 10. Ejemplificación del concepto herencia

Una subclase puede heredar la estructura y comportamiento de su superclase.

Fuente: http://student.mohammed.mx/tutoriales/fundamentosdeprog/t154.htm

Como ya se mencionó anteriormente, una clase es una categoría de


objetos (y en el mundo del software, una planilla sirve para crear otros
objetos). Un objeto es una instancia de una clase. Esta idea tiene una
consecuencia importante como instancia de una clase, un objeto tiene
todas las características de la clase de la que proviene. No importa qué
atributos y acciones decida usar de la clase. (ITESCAM, 2014).

33
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Por lo tanto:

'' La herencia es el proceso mediante el cual un


objeto de una clase adquiere propiedades
definidas en otra clase que lo preceda en una
jerarquía de clasificaciones. (Car'ballo, Y., 2007).
'-
41�
�-;:;;;;::�rr+

La herencia permite la definición de un nuevo objeto a partir de otros,


agregando las diferencias entre ellos, evitando repetición de código y
permitiendo la reusabilidad.

Las clases heredan los datos y métodos de la superclase. Un método


heredado puede ser sustituido por uno propio si ambos tienen el mismo
nombre. La herencia puede ser simple (cada clase tiene sólo una
superclase) o múltiple (cada clase puede tener asociada varias
superclases). (Carballo, Y., 2007).

El mecanismo de herencia permite definir nuevas clases partiendo de


otras ya existentes. Las clases que derivan de otras heredan
automáticamente todo su comportamiento, pero además pueden
introducir características particulares propias que las diferencian.
(Izquierdo, L., 2010).

REFLEXIONA:

sobre el siguiente ejemplo

34
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Las bicicletas de montaña, las de carretera y los tándems son todos, en


definitiva, bicicletas. Análogamente, la clase bicicleta es la clase base o
superclase de las bicicletas de montaña, las de carretera y los tándems.

Ilustración 11. Ejemplo de la clase bicicleta

Herencia

Fuente:http://pooitsavlerdo.blogspot.mx/2012/05/11-elementos-del-modelo-de-objetos.html

Cada subclase hereda los estados (en forma de declaración de


variables) de la superclase de la cual deriva. Las bicicletas de montaña,
las de carretera y los tándems comparten algunos estados: cadencia,
velocidad... Además, cada subclase hereda los métodos de su
superclase.

Las bicicletas de montaña, las de carretera y los tándems comparten


algunos comportamientos: frenar y cambiar la cadencia de pedaleo, por
ejemplo.

Además, no estamos limitados a un único nivel de herencia. El árbol de


herencias o jerarquía de clases puede ser tan extenso como
necesitemos. Los métodos y las variables miembro se heredarán hacia
abajo a través de todos los niveles de la jerarquía. Normalmente,
cuanto más abajo está una clase en la jerarquía de clases, más

35
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Ur) Universidad
6M Digital dEI Estado de México

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

especializado es su comportamiento. En nuestro ejemplo, podríamos


hacer que la clase bicicleta derivase de una superclase de vehículos.

La herencia es una herramienta clave para abordar la resolución de un


problema de forma organizada, pues permite definir una relación
jerárquica entre todos los conceptos que se están manejando. Es
posible emplear esta técnica para descomponer un problema de cierta
magnitud en un conjunto de problemas subordinados a él. La
resolución del problema original se consigue cuando se han resuelto
cada uno de los problemas subordinados, que a su vez pueden
contener otros. Por consiguiente, la capacidad de descomponer un
problema o concepto en un conjunto de objetos relacionados entre sí
cuyo comportamiento es fácilmente identificable puede ser
extraordinariamente útil para el desarrollo de programas informáticos.
(Izquierdo, L., 2010).

1.1.7 Polimorfismo

Ilustración 12. Ejemplificación del concepto de polimorfismo

Polimorfismo

Fuente: http://pooitsavlerdo.blogspot.mx/2012/05/11-elementos-del-modelo-de-
objetos.html

36
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

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
cómo realizar tal operación. Esto es el polimorfismo. (ITESCAM, 2014).

En el polimorfismo una operación puede tener el mismo nombre en


diversas clases y funcionar distinta en cada una. (Valero, A., 2013).

En primera instancia, parecería que este concepto es más importante


para los desarrolladores de software que para los modeladores, ya que
los desarrolladores tienen que crear el software que implemente tales
métodos en los programas de computación, y deben estar conscientes
de diferencias importantes entre las operaciones que pudieran tener el
mismo nombre. Y podrán generar clases de software que “sepan” lo
que se supone que harán.

No obstante, el polimorfismo también es importante para los


modeladores ya que les permite hablar con el cliente (quien está
familiarizado con la sección del mundo que será modelada) en las
propias palabras y terminología del cliente. En ocasiones, las palabras y
tenninología del cliente nos conducen a palabras de acción (como
“abrir”) que pueden tener más de un significado. El polimorfismo
permite al modelador mantener tal terminología sin tener que crear
palabras artificiales para sustentar una unicidad innecesaria de los
términos. (Valero, A., 2013).

En el enfoque Orientado a Objetos el polimorfismo es una propiedad


que permite que un método tenga múltiples implementaciones, que se

37
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

seleccionan en base al tipo objeto indicado al solicitar la ejecución del


método. (Carballo, Y., 2007).

' ( En
Enprogramación
programaciónorientada a objetos
orientada se denomina
a objetos polimorfismo
se denomina porimorfismo
aa la capacidad que tienen los objetos de una clase de responder
la capacidad que tienen los objetos de una clase de responder al al
mismo mensaje o evento en función de los parámetros utilizados
mismo mensaje o evento en función de los parámetros utilizados
durante su invocación. (AUI., 2012).
durante su invocación. (AUL, 2012).

Un objeto polimórfico es una entidad que puede contener valores de


diferentes tipos durante la ejecución del programa. Dicho de otra
forma, el polimorfismo consiste en conseguir que un objeto de una
clase se comporte como un objeto de cualquiera de sus subclases,
dependiendo de la forma de llamar a los métodos de dicha clase o
subclases. (AUI., 2012).

Cuando se habla de polimorfismo en

,
programación orientada a objetos se suden
entender dos cosas:

1 1. La primera se refiere a que se puede

-' -
trabajar con un objeto de una clase sin
importar de qué clase se trata. Es decir, se
trabajará igual sea cual sea la clase a la
que pertenece el objeto. Esto se consigue
mediante jerarquías de clases y clases
abstractas.
2. La segunda suele referirse a la posibilidad
de declarar métodos con el mismo nombre
que pueden tener diferentes argumentos
dentro de una misma clase. (Bustinduy, A.,
2013). (Bustinduy, A., 2013).

38
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

1.2. Programación y lenguajes Orientados a Objetos

Un paradigma es una forma de entender y representar la realidad. Es


un conjunto de teorías, estándares y métodos que, juntos, representan
un modo de organizar el pensamiento, es decir, el modo de ver el
mundo. Cada nuevo paradigma responde a una necesidad real de
nuevos modos de afrontar problemas. (Cachero. C., 2013).

Un paradigma de programación es un enfoque particular para la


construcción de software, un estilo de programación que facilita la
tarea de programación o añade mayor funcionalidad al programa
dependiendo del problema que haya que abordar. Todos los paradigmas
de programación pertenecen a lenguajes de alto nivel, y es común que
un lenguaje pueda usar más de un paradigma de programación.

.
(Casado, C., 2012).
' ,
·.a·EI paradigma de programación orientado a objetos es un método de
implementación en el que los programas se organizan como colecciones cooperativas de
objetos, cada uno de los cuales representa una instancia de alguna dase y cuyas
clases son todas miembros de una jerarquía de clases unidas mediante relaciones de
herencia. (Roque, R., 2014).

-'•"'·
� El parad 1g
-
ma de programación orientad o, a o �jetos:,
encapsula el estado y las operaciones en objetos, creando una
estructura de clases y objetas que emula un modelo, del mundo real,
donde las objetas realizan acciones e interactúan con otras objetas.
P·ermite la herencia e implementación de otras clases, pudiendo
establecer tipos para les objetas y dejando el código más parecido al
mundo real con esa abstracción oonoeptual. (Casado, C., 2.012}.

39
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

1.2.1 Definición

La tecnología orientada a objetos propone una forma de pensar de modo


abstracto acerca de problemas a resolver empleando conceptos del
mundo real y, el modelado y diseño Orientado a Objetos se funda en
pensar acerca de problemas a resolver empleando modelos que se han
organizado tomando como base conceptos del mundo real donde la
unidad básica es el objeto que combina las estructuras de datos con los
comportamientos en una entidad única. (Rossi, B., Britos P. y García
Martínez R., 2012).

-.a�L::,
.. t ,

., Programación Orientada a Objetos (e,QQ) o .9.Ri!=l!;;t. .Qri!=lnt.E;J.9


.J?rogramming (.QQP .según sus .siglas en inglés), es una metodología de
diseño de software y un paradigma de programación que define los
programas en términos de "clases de objetos", objetos que .son
entidades q11.Je combinan estrado (e.s decir, datos) y comportamiento
(esto es, procedimientos o métodos). (Arenas, l. ,2008).

Es muy importante destacar que cuando hacemos referencia a la


programación orientada a objetos no estamos hablando de unas cuantas
características nuevas añadidas a un lenguaje de programación.
Estamos hablando de una nueva forma de pensar acerca del proceso de
descomposición de problemas y de desarrollo de soluciones de
programación. La programación orientada a objetos es otra forma de
descomponer problemas. Este nuevo método de descomposición es la
descomposición en objetos; vamos a fijarnos no en lo que hay que hacer
en el problema, sino en cuál es el escenario real del mismo, y vamos a
intentar simular ese escenario en nuestro programa. (Izquierdo, L.,
2010).

40
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

. ""
' ª aS _
7
ue .... Cada nuevo paradigma responde a una necesidad real
de nuevos modos de afrontar problemas, en la
Programación Orientrada a Objetos, se presentan los
siguientres cambios:

 El modo de organización del programa:


En clases (datos + operaciones sobre datos)
 Quiénes se encargan de trabajar con la información: Las
funciones miembro de las clases: utiliza objetos, no algoritmos,
como bloques de construcción lógicos
 El concepto de ejecución de programa: Paso de mensajes
 Si no hay herencia, no es Orientado a Objetos, es programación
basada en TAD (Tipos Abstractos de Datos) o basada en
objetos. No basta con utilizar un lenguaje Orientado a Objetos
para programar orientado a objetos, para eso hay que seguir
un paradigma de programación Orientado a Objetos
 El concepto de dato (pasivo) por el de objeto (activo), cada
objeto es una especie de máquina funcional cerrada con unos
pocos interruptores y diales bien definidos
 Favorece la claridad y la estructuración: facilitan la auto
documentación de programas
 Los mecanismos de encapsulación facilitan la comprensión del
programa y permite, por ejemplo, la generación automática de
documentación. (Cachero. C., 2013)

41
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

1.2.2 Características de la POO

• ;

' aS1
u e ...• La Programación Orientada a Objetos (EQQ) se ha convertido
durante las pasadas dos décadas en el paradigma de
programación dominante, y en una herramienta para resolver la
llamada crisis del software ya que se escala muy bien - desde el
problema más trivial hasta la tarea más compleja-, proporciona
un modelo de abstracción que razona con técnicas que la gente
usa para resolver problemas en sus vidas (metáforas) y para la
mayoría de !:Q_Q hay un número creciente de librerías que asisten
en el desarrollo de aplicaciones para muchos dominios. (Cachero.
c., 2013).

REFLEXIONA:

Sobre el siguiente ejemplo

Supongamos que Luis quiere enviar flores a Alba, que vive en otra
ciudad.
 Luis va a la florería más cercana, atendida por un florista llamado
Pedro
 Luis le dice a Pedro qué tipo de flores enviar a Alba y la dirección de
entrega

El mecanismo utilizado para resolver el problema es encontrar un


agente apropiado (Pedro) y enviarle un mensaje conteniendo la petición
(envía flores a Alba). Es la responsabilidad de Pedro satisfacer esa
petición. Para ello, es posible que Pedro disponga de algún método

42
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

(algoritmo o conjunto de operaciones) para realizar la tarea. Luis no


necesita (ni le interesa) conocer el método particular que Pedro utilizará
para satisfacer la petición: esa información suele estar OCULTA. Sin
embargo Pedro, internamente, puede haber utilizado un mecanismo
distinto: enviar un mensaje ligeramente diferente a un florista ubicado
en la ciudad de Alba. Quizás este florista a su vez tenga algún
subordinado que realice el encargo, al que el florista envía las flores a
través de un nuevo mensaje. Antes, probablemente haya obtenido las
flores de un vivero, que a su vez tiene relación con los criadores de
flores de la zona, cada uno de los cuales debe manejar un equipo de
jardineros.
 Así, la solución del problema ha requerido la ayuda de muchos
individuos para su solución
 La definición de problemas en términos de responsabilidades
incrementa el nivel de abstracción y permite una mayor
independencia entre objetos. (Cachero. C., 2013)

'.,
·.a· Pliogramación Orientada a
Objetos (!:QQ) es nuevo modo die
ver el mundo estructurado en:
• Agentes y comu nldades
• Mensajes y métodos
• Responsabilidades
• Objetos y clases
• Jerarquías de ella ses
Enlace die métodos (Ponce de León,
P., 2013).

43
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Agentes y comunidades

Un programa Orientado a Objetos se estructura como una comunidad de


agentes que interaccionan (OBJETOS). Cada objeto juega un rol en la
solución del problema. Cada objeto proporciona un servicio o realiza
una acción que es posteriormente utilizada por otros miembros de la
comunidad. (Cachero. C., 2013).

Mensajes y métodos

A un objeto se le envían mensajes para que realice una determinada


acción. El objeto selecciona un método apropiado para realizar dicha
acción. A este proceso se le denomina Paso de mensajes. Ese mensaje
puede ir acompañado de cualquier información adicional (parámetros)
necesaria para atender la petición.

 Sintaxis de un mensaje: receptor. selector(argumentos)

Un mensaje se diferencia de un
procedimiento/lllamada a función en
dos aspectos:

1 I 1) En un mensaje siempre hay un

..' - receptor, lo cual no ocurre en una


lllamada a procedimiento .
2) La interpretación de un mismo
mensaje puede variar en función
del receptor del mismo. (Punce de
t.eón, P., 2013).

44
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Responsabilidades

 El comportamiento de cada objeto se describe en términos de


responsabilidades (incremento del nivel de abstracción)
 La mayor independencia entre los objetos, básico para la
solución de problemas más complejos
 Protocolo: Conjunto de responsabilidades de un objeto
 POO vs Programación tradicional
 Un programa tradicional opera SOBRE estructuras de datos
 Un programa OO solicita a las estructuras de datos (objetos)
que realicen un servicio. (Cachero. C., 2013)

Objetos y clases

 Un objeto es una encapsulación de un estado (valores de los


datos) y comportamiento (operaciones)

 Los objetos se agrupan en categorías (clases)


 Un objeto es una instancia de una clase
 El método invocado por un objeto en respuesta a un mensaje
viene determinado por la clase del objeto receptor. (Cachero.
C., 2013).

Jerarquías de clases

 En la vida real, mucho conocimiento se organiza en términos de


jerarquías. Este principio por el cual el conocimiento de una
categoría más general es aplicable a una categoría más específica

45
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

se denomina generalización, y su implementación en POO se


llama herencia.

Ejemplo:
 Pedro, por ser florista, es un dependiente (sabe vender y
cobrar)
 Los dependientes normalmente son humanos (pueden hablar)
 Los humanos son mamíferos (Pedro respira oxígeno…)

 Las clases de objetos pueden ser organizadas en una estructura


jerárquica de herencia. Una clase ‘hijo’ hereda propiedades de
una clase ‘padre’ más alta en la jerarquía (más general):

Enlace de métodos

 Instante en el cual una llamada a un método es asociada al código


que se debe ejecutar
 Enlace estático: en tiempo de compilación
 Enlace dinámico: en tiempo de ejecución. (Ponce de León, P.,
2013)

46
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

1.2.3 Características del LOO

Las características básicas de los Lenguajes Orientados a


Objetos _!_.QQ son seis:

(1) Todo es un objeto


(2) Cada objeto es construido a partir de otros objetos.

,
(3) Todo objeto es instancia de una clase

-
1 (4) Todos los objetos de la misma clase pueden recibir los mismos

'
mensajes (realizar las mismas acciones). La clase es el lugar donde

- se define el comportamiento de los objetos y su estructura


interna.
(5) Las clases se organizan en una estructura arbórea de raíz
única, llamada jerarquía de herencia.
Por ejemplo: puesto que un círculo es una forma, un círculo
siempre aceptará todos los mensajes destinados a una forma.
(6) Un programa es un conjunto de objetos que se comunican
mediante el paso de mensajes. (Ponce de León, P., 2013).

Características Opcionales de un LOO

Polimorfismo. Capacidad de una entidad de referenciar elementos de


distinto tipo en distintos instantes

Genericidad. Definición de clases parametrizadas (templates en C++,


generics en Java) que definen tipos genéricos

Gestión de Errores. Tratamiento de condiciones de error mediante


excepciones

Aserciones. Expresiones que especifican qué hace el software en lugar


de como lo hace

47
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
IJ� Universidad
Wi Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

 Precondiciones: propiedades que deben ser satisfechas cada vez


que se invoca una servicio
 Postcondiciones: propiedades que deben ser satisfechas al
finalizar la ejecución de un determinado servicio
 Invariantes: aserciones que expresan restricciones para la
consistencia global de sus instancias

Persistencia. Es la propiedad por la cual la existencia de un objeto


trasciende la ejecución del programa. Normalmente implica el uso de
algún tipo de base de datos para almacenar objetos.

Reflexión. Capacidad de un programa de manipular su propio estado,


estructura y comportamiento.
 En la programación tradicional, las instrucciones de un programa
son ‘ejecutadas’ y sus datos son ‘manipulados’.

Si vemos a las instrucciones como datos, también podemos


manipularlas. (Ponce de León, P., 2013).

Ahora después de todo lo que has aprendido, es momento de resolver la


actividad complementaria que te permitirá reforzar los aprendizajes
adquiridos hasta el momento.

4C Actividad Com lementaria 1.1


Posteriormente realizar la actividad de aprendizaje 1.1 correspondiente
a este tema.

48
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

J � Actividad de A rendiza·e 1.1

1.3 Metodologías orientadas a objetos

Ilustración 13. Ejemplificación de Metodologías orientadas a objetos

_ ___.·�
--· .

Fuente: http://astreo.ii.uam.es/~jlara/TACCII/5_UML_rev1.pdf

p
INDAGA SOBRE

t.os lenguajes de modelado O.O

Aparecieron entre la mitad de los años ´70 y finales de los ’80. El


número de métodos OO se incrementó increíblemente entre 1989 y
1994 y cada metodología tenía sus propias notaciones y simbología. Los
lenguajes de modelado O.O aparecieron entre la mitad de los años ´70
y finales de los ’80. El número de métodos OO se incrementó

49
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

increíblemente entre 1989 y 1994 y cada metodología tenía sus propias


notaciones y simbología. Comenzaron a destacarse: la metodología de
Booch OOD, OOSE de Jacobson y OMT de Rumbaugh.

Estas tres metodologías van a ser fusionadas a finales de 1997 en una


sola, basada en la notación UML. (Domínguez, A., 2102).

Las metodologías de diseño orientado a objetos han evolucionado para


ayudar a los desarrolladores a explotar el poder de los lenguajes de
programación basados en objetos y orientados a objetos, utilizando las
clases y objetos como bloques de construcción básicos.

1.3.1 Definición

La metodologías análisis y diseño orientado a objetos constituven una nueva


forma de pensar acerca de problemas empleando modelos que son útiles
para comunicarse con expertos en esa aplicación, modelar empresas,
preparar documentación, diseñar programas y bases de datos. (Dorninquez,
A., 2102)

La esencia del análisis y diseño orientado a objetos es la identificación y


organización de conceptos del dominio de la aplicación, y no de su
presentación final en un lenguaje de programación, es decir, es un
proceso conceptual independiente de sí el lenguaje es orientado a
objetos.

El uso de las metodologías de análisis y diseño orientado a objetos


facilita la creación de prototipos, y las técnicas de desarrollo evolutivo
de software. Los objetos son inherentemente reutilizables, y se puede
crear un catálogo de objetos que podemos usar en sucesivas

50
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital

""'"' del Estado dE México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

aplicaciones. De esta forma, podemos obtener rápidamente un prototipo


del sistema, que pueda ser evaluado por el cliente, a partir de objetos
analizables, diseñados e implementados en aplicaciones anteriores. Y lo
que es más importante, dada la facilidad de reutilización de estos
objetos, el prototipo puede ir evolucionado hacia convertirse en el
sistema final, según vamos refinado los objetos de acuerdo a un proceso
de especificación incremental.

Una metcdol ogfa de desarrollll o de software 00 consta de:

-
• Conceptos y dia,gram as
1
• Etapas y defiiniici,ón de entregas en cada una de eJlllas

• A,clJividades y recom endaci ones. (Domínuuez, A., 2102),

51
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

1.3.2 Metodología de Booch

Ilustración 14. Fotografía de Grandy Booch

Grady Booch

Fuente: http://astreo.ii.uam.es/~jlara/TACCII/5_UML_rev1.pdf

El método de Booch Object Oriented Design ODD, es publicado en


1991 por Grady Booch, es un método muy utilizado en el análisis y
diseño orientado a objetos. La parte más importante en el análisis y
diseño orientado a objetos de acuerdo a la metodología de Booch es la
identificación de clases y objetos. (Domínguez, A., 2102).

La metodología de Booch usa diversos tipos de diagramas para describir


las decisiones de análisis y diseño, tácticas y estratégicas, que deben
ser hechas en la creación de un sistema orientado por objetos.
(Domínguez, A., 2102).

52
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

" 1 I

·A,·EI método cuenta con una notación expresiva y bien


definida que le permite al diseñador comunicar sus
ideas y concentrarse en problemas más serios. Este
método propone 4 modellos de desarrollo orientado
a objetos: estructura física y lógica y su semántica
estática y dinámica. (R.omero, P.., 2013).

El Modelo lógico, describe la existencia y significado de las abstracciones


principales y los mecanismos que forman el espacio del problema o para
definir la arquitectura del sistema.
El Modelo físico, describe la composición concreta en cuanto a hardware
y software del contexto o implantación del sistema. (Romero, P., 2013).

Las técnicas para capturar la parte lógica/ estática de acuerdo con el método de
Booch son las siguientes:

- -
Diagrama de objetos: Un diagrama de objetos se utiliza para mostrar la
I existencia de objetos y sus relaciones en el diseño lógico de un sistema,
incluyendo visibilidad y sincronización. Los dos elementos esenciales de un
diagrama de objetos son los objetos y sus relaciones.

Diagramas de clases: muestran las clases existentes y sus relaciones entre ellas,
en la visión lógica de un sistema, incluye aspectos de cardinalidad, persistencia y
visibilidad. Los dos elementos esenciales de un diagrama de clases son: las clases
y sus relaciones básicas.

53
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Las técnicas para capturar la vista lógica/ dinámica son las


siguientes:
Diagrama de transición de estados: muestra los estados de un
objeto, transiciones y las acciones que resultan de ese cambio

-
1 de estado. Puede representar una vista del modelo dinámico de
una sola clase o de un sistema completo. Debido a que durante
• el análisis se utilizan para indicar el comportamiento dinámico
del sistema.
Diagramas de interacción: describen como los escenarios son
ejecutados en el mismo contexto, además de mostrar los
aspectos dinámicos. Es otra manera de representar el diagrama
de objetos, tomando la mayoría de sus elementos esenciales de
los diagramas de objeto. Con este tipo de diagramas es más fácil
leer el paso de mensajes en orden relativo.

·:&- Técnicas para capturar la vista física/ estática.

Diagramas de módulos: se utiliza un diagrama


de módulos para mostrar la asignación de
clases y objetos a módulos en el diseño físico
de un sistema. Un solo diagrama de módulos
representa una vista de la estructura de
módulos de un sistema. Los dos elementos
esenciales de un diagrama de módulos son los
módulos y sus dependencias.

Diagramas de procesos: muestran la asignación de procesos a


procesadores en el diseño físico de un sistema. Un solo diagrama de
procesos presenta una vista de la estructura de procesos de un sistema.
Los elementos del diagrama son:
Procesadores. Elemento de hardware capaz de ejecutar

programas

54
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Dispositivos. Elemento de hardware incapaz de ejecutar un

programa

Conexiones. Son líneas no dirigidas para indicar conexiones

entre procesadores y/o dispositivos. (Romero, P., 2013)

El proceso

e•

u e ..1..
a
Booch propone un proceso de desarrollo pensando en que el macro-proceso es aquel
proceso donde las etapas de desarrollo abarcan un período grande, donde un equipo de
desarrolladores se verá implicado, mientras que define al micro-proceso como una
actividad diaria que se debe de realizar según lo que se va descubriendo o desarrollando
durante el macro-proceso. Mediante esta conceptualización durante las primeras etapas
del macro-proceso en especial en el análisis es donde se estudia el comportamiento del
sistema, se entra en el proceso del icro r eso donde se describen que clases y
objetos intervendrán, y mientras se avanza en el macro roceso cuando se tengan
establecidos los escenarios en el micro-proceso se podrá llevar a cabo una narración de
sucesos que ayudará a identificar las responsabilidades de cada abstracción. (Romero,
P., 2013).

El macro-proceso de desarrollo

En el marco de referencia para el control del micro-proceso, se dicta una


serie de actividades cuantificables que permiten al equipo de desarrollo
tasar el riego de forma significativa y realizar correcciones iniciales al
micro-proceso de forma de centrar mejor las actividades de análisis y
diseño del equipo.

55
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

El macro-proceso realiza las siguientes actividades:

Figura 4. Actividades del macro-proceso de Booch

• ::t!bl!c��roils H
requisitos esench1les
pu11:I sisterm1.
-
•S1:ll1:v.1 il e abe un
análisis en el dominio
•Cr•ilrunil uquitact1Jn1
pui1l1
implemenución,
•En1:st11:t,1pase
puedelleguil
•Gestionulil evolución
post·vent.11 o post·
entrega.

-
��:te�����/,Pl::cribir aumentuycambiarla
�:l�!:�.C,,��tediantl!

�-
el problemil buándoH
en el comporumiento sucesivos.
del sistema.

Fuente UDEMEX 2019 con información de Romero, P., 2013

-:.- Para cada una de las etapas se desarrollan los


siguientes puntos:
Propósito.
Productos.
Actividades.
Hitas y medidas,

El micro-proceso de desarrollo

Está dirigido por la corriente de escenarios y productos arquitectónicos,


resultantes del macroproceso y refinamientos sucesivos.

El micro-proceso sigue las siguientes actividades:

56
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

 Identifica clases y objetos a un nivel dado de abstracción:


Se identifican clases y tipos de objetos para delimitar el problema
y tener bien establecido el dominio del mismo. A raíz de realizar
esta etapa se crea un diccionario de datos donde se documentan
dichos elementos, el cual servirá para tener una visión global del
sistema
 Identifica la semántica de estas clases y objetos: Se
identifica que van a hacer y que representa cada clase de datos,
por lo cual surge un refinamiento del diccionario de datos debido a
que cada descripción de clase contendrá los atributos y
responsabilidades de dichas clases
 Identifica las relaciones entre estas clases y objetos: Se
identifican las colaboraciones de cada clase u objeto, para
establecer las asociaciones y se lleva a cabo mediante la
descripción de las responsabilidades de cada abstracción. En esta
etapa se especifican las asociaciones y mediante la separación de
responsabilidades se lleva a cabo un refinamiento de las mismas,
además esta etapa tiene como consecuencia otro refinamiento al
diccionario de datos
 Especifica la interfaz y luego la implementación de estas
clases y objetos: En esta etapa se verifican las abstracciones
existentes ya que se identifican la forma en que una abstracción
responde al llamado de otra, lo cual lleva a definir métodos y
mensajes transmitidos entre las abstracciones. (Romero, P., 2013)

Actividades

57
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Figura 5. Actividades del micro-proceso de Booch

r>.
• l!'I e:st.s tt-1;n se OÓ!,e q;ié
� et�noOtl u>.e"J fffi·rli:H -�,=�:¡=, Mlfüil
-=�r:e��

-
ol$c]�e,eodlir'�!l'4 �!t:cpt�t.;it{U
e..:.-.e."S�.¡,:re,6,yoo �,t�tr.t
�"!MOCIBc.e1vü��
..,,,,_
lltpvtt:dfólin::id,e..o�� q��
�dtl'UOCll'lti
'(tl�!Oe.ltr.:o-.lt.OL

MI
<::»

Fuente UDEMEX 2019 con información de Romero, P., 2013

Análisis de requerimientos

En esta etapa se define qué quiere el usuario del sistema. Es una etapa
de alto nivel que identifica las funciones principales del sistema, el
alcance del modelamiento del mundo y documenta los procesos
principales y las políticas que el sistema va a soportar. No se definen
pasos formales, ya que éstos dependen de qué tan nuevo es el
proyecto, la disponibilidad de expertos y usuarios y la disponibilidad de
documentos adicionales. (Domínguez, A., 2102).

Análisis de Dominio

Es el proceso de definir de una manera concisa, precisa y OO la parte


del modelo del mundo del sistema. Las siguientes actividades son parte
de esta etapa:

 Definir Clases

58
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

 Definir relaciones de contenencia


 Encontrar atributos
 Definir herencia
 Definir operaciones
 Validar e iterar sobre el modelo
(Domínguez, A., 2102).

Diseño

Es el proceso de determinar una implementación efectiva y eficiente que


realice las funciones y tenga la información del análisis de dominio. Las
siguientes actividades se plantean en esta etapa:

 Determinar la arquitectura inicial: decisiones acerca de


recursos de implementación, categorías y prototipos a desarrollar
 Determinar el diseño lógico: detalle al diagrama de clases
 Implementación física: interfaz a dispositivos o características
propias de la implementación
 Refinamiento del diseño: Incorporar el aprendizaje debido a los
prototipos y cumplir con requerimientos de desempeño.
(Domínguez, A., 2102)

Definición de entregas

Análisis de requerimientos

 Funciones primarias del sistema: Principales entradas y salidas


del sistema, referencias a políticas, sistemas existentes o
procedimientos, etc.
 Conjunto de mecanismos claves que el sistema debe proveer:
estado de entrada, estado de salida y estados esperados.
(Domínguez, A., 2102).
59
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Análisis de Dominio

 Diagrama de clases con las abstracciones clave, identificando las


clases del dominio claves y sus relaciones
 Especificación de las clases
 Vistas de herencia. Diagramas de clases con este tipo de relaciones
 Diagramas de escenarios de objetos
 Especificación de objetos, que relacionan objetos y sus clases.
(Domínguez, A., 2102).

Diseño

 Descripción de arquitectura, que describe las decisiones más


importantes de diseño como son el conjunto de procesos,
manejadores de bases de datos, sistemas operativos, lenguajes, etc.
 Descripciones de prototipo, que describen las metas y contenido
de las implementaciones sucesivas de prototipos, su proceso de
desarrollo y la forma de probar requerimientos
 Diagramas de Categorías
 Diagramas de clases en diseño, detallan las abstracciones de
análisis con características de implementación
 Diagramas de objetos en diseño, muestran las operaciones
necesarias para desarrollar una operación
 Nuevas especificaciones (Domínguez, A., 2102)

Especificaciones de clases corregidas, muestra la especificación


completa de los métodos con algoritmos complicados, la implementación
de relaciones y el tipo de atributos. (Domínguez, A., 2102)

60
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

1.3.3 Metodología de James Rumbaugh

Ilustración 15. Fotografía de James Rumbaugh

James Rumbaugh

Fuente: http://astreo.ii.uam.es/~jlara/TACCII/5_UML_rev1.pdf

La Metodología OMT (Object Modeling Technique) o Técnica de


Modelado de Objetos fue creada por James Rumbaugh y Michael
Blaha en 1991, mientras James dirigía un equipo de investigación de los
laboratorios General Electric. (Chávez, V. y Olivares J. , 2002).

La OMT describe el análisis y diseño orientado a objetos como una forma


de organizar software dentro de una correlación de objetos discretos
que incorporan tanto comportamiento como estructuras de datos. La
esencia del desarrollo orientado a objetos en OMT es la identificación y
organización de conceptos en el dominio del problema. Este método
tiene muchas notaciones, aunque para el desarrollo de muchos sistemas
solamente algunas son usadas. (Romero, P., 2013).

·.1.. .
De acuerdo a fü-!!JJ.Q.�.�JrQ. en el Q.MJ, el sistema es descrito a partir de 3 modelos
' ,
diferentes: un modelo de objetos, un modelo dinámico, y un modelo funcional.
Cada modelo describe un aspecto del sistema pero contiene referencias a los
demás modelos. Lo cual indica que los tres no son totalmente independientes
(Romero, P., 2013}.

61
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

a) El modelo de objetos. El modelo de objetos es el modelo más


importante, ya que en él se identifican las clases dentro del sistema
junto con sus relaciones, así como sus atributos y operaciones, lo que
representa la estructura estática del sistema. El modelo de objetos se
representa mediante un diagrama de clases. Se define como un
diagrama de objetos más un diccionario de datos. El diagrama de
objetos muestra clases y sus relaciones (generalización, agregación,
asociación, instanciación). El diccionario de datos es el detalle de las
clases en el diagrama de objetos
b) El modelo dinámico. Se define como un conjunto de diagramas de
estado más un diagrama de Flujo de eventos Global. Representa los
aspectos temporales de comportamiento "de control" del sistema,
mediante la secuencia de operaciones en el tiempo
c) El modelo funcional. Es un diagrama de flujo con restricciones.
Representa los aspectos transformacionales "de función" del sistema,
mediante la transformación de valores de los datos. Se representa
mediante un diagrama de flujo

. �

'- ª aS 1
U e ... • los
Cada modelo describe un aspecto del sistema pero contiene referencias a
demás modelos. Lo cual indica que los tres no son totalmente
independientes.

62
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Las fases del proceso que conforman a la metodología OMT son:

Figura 6. Fases del proceso que conforman la metodología OMT

Fuente UDEMEX 2019 con información de Romero, P., 2013

El analista construye un modelo del dominio del problema, mostrando


sus propiedades más importantes. El modelo de análisis es una
abstracción resumida y precisa de lo que debe de hacer el sistema
deseado y no de la forma en que se hará. Los elementos del modelo
deben ser conceptos del dominio de aplicación y no conceptos
informáticos tales como estructuras de datos. Un buen modelo debe
poder ser entendido y criticado por expertos en el dominio del problema
que no tengan conocimientos informáticos. (Chávez, V. y Olivares J.,
2002).

63
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Diseño del sistema

El diseñador del sistema toma decisiones de alto nivel sobre la


arquitectura del mismo Durante esta fase el sistema se organiza en
subsistemas basándose tanto en la estructura del análisis como en la
arquitectura propuesta. Se selecciona una estrategia para afrontar el
problema. (Chávez, V. y Olivares J., 2002).

Diseño de objetos

El diseñador de objetos construye un modelo de diseño basándose en el


modelo de análisis, pero incorporando detalles de implementación. El
diseño de objetos se centra en las estructuras de datos y algoritmos que
son necesarios para implementar cada clase. OMT describe la forma en
que el diseño puede ser implementado en distintos lenguajes
(orientados y no orientados a objetos, bases de datos, etc.). (Chávez, V.
y Olivares J., 2002).

Implementación

Consiste en implementar las clases de objetos en un lenguaje de


programación (código), diseño de bases de datos, si se requieren y se
realizan pruebas para verificar el comportamiento de las clases y objetos
que se encuentran descritos en los escenarios. Así las clases de objetos
y relaciones desarrolladas durante el análisis de objetos se traducen
finalmente a una implementación concreta. Durante la fase de
implementación es importante tener en cuenta los principios de la
ingeniería del software de forma que la correspondencia con el diseño
sea directa y el sistema implementado sea flexible y extensible. No tiene
sentido que utilicemos AOO y DOO de forma que potenciemos la
reutilización de código y la correspondencia entre el dominio del

64
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

problema y el sistema informático, si luego perdemos todas estas


ventajas con una implementación de mala calidad.
(Chávez, V. y Olivares J., 2002).

Actividades

Figura 7. Actividades que conforman la metodología OMT

·:::0�dclosfflOOLOS�y

_........,
•2-��i.�ru,�>rll:u

• !.()pt:.'Tn1Jlc:.SU1Nfte:l<fe1,t.(;.U:)� -:.idat:.i

Fuente UDEMEX 2019 con información de Chávez, V. y Olivares J., 2002

Análisis
1. Escribir u obtener una descripción del problema
2. Construir el modelo de objetos
3. Construir el modelo dinámico
4. Construir el modelo funcional
5. Verificar, iterar y refinar los tres modelos

Diseño del sistema


1. Organizar el sistema en subsistemas
2. Identificar concurrencia inherente al problema
3. Asignar subsistemas a procesadores y tareas

65
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

4. Escoger una estrategia para la implementación de almacenamiento de


datos
5. Determinar los mecanismos para controlar el acceso a recursos
globales
6. Escoger la implementación del control del software
7. Manejar condiciones de frontera
8. Establecer prioridades
Diseño de objetos
1. Obtener operaciones de los modelos funcional y dinámico
2. Diseñar algoritmos para realizar las operaciones
3. Optimizar los caminos de acceso a los datos
Definición de entregas

Análisis
Documento de análisis, que incluye:
 Descripción del problema
 Modelo de Objetos
 Modelo dinámico
 Modelo funcional
Diseño del sistema
 Definición de subsistemas
 Diseño de objetos
 Documento de diseño, que incluye versiones detalladas de los
modelos de objetos, dinámico y funcional
Implementación
 Diseño de bases de datos, si se requieren
 Código (Domínguez, A., 2102).

66
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

1.4. Lenguaje de modelado unificado

. ;

'- ª aS
U e .. 7 ULM (Uní ied Modelin Language) o Lenguaje de Modelado
• Unificado es la sucesión de una serie de métodos de análisis y
diseño orientadas a objetos que aparecen a fines de los 80's y
principios de los 90's. UML se deriva y unifica principalmente
de las tres metodologías de análisis y diseños más extendidas:
De la metodología de Grady Booch para la descripción de
conjuntos de objetos y sus relaciones, de la técnica de
modelado orientada a objetos de James Rumbau h (OMT:
Object - Modellin Techni ue y la de lvar Jacobson (OOSE:
Obj�ct- Oriented Software En ineerin ) mediante la
metodología de casos de uso (use case).

De estas tres metodologías de partida, las de Booch y Rumbaugh


pueden ser descritas como centradas en objetos, ya que sus
aproximaciones se enfocan hacia el modelado de los objetos que
componen el sistema, su relación y colaboración. Por otro lado, la
metodología de Jacobson es más centrada al usuario, ya que todo en su
método se deriva de los escenarios de uso. UML se ha ido fomentando y
aceptando como estándar desde el OMG (Object Management Group),
que es también el origen de CORBA (Common Object Request Broker
Architecture), el estándar líder en la industria para la programación de
objetos distribuidos. (Domínguez, A., 2102).

En 1997 UML 1.1 fue aprobada por la OMG (Object Management Group)
convirtiéndose en la notación estándar de facto para el análisis y el
diseño orientado a objetos. Domínguez, A. (2102).

67
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Ilustración 16. Principales etapas en la definición de UML

Principales etapas en la definición de· UML

Fuente: UDEMEX 2019

1.4.1 Conceptos básicos

'' El término UML proviene de las siglas en inglés Lenguaje


Unificado de Modelado (Unified Mo delinq Language) y es el
lenguaje de modelado de sistemas software más conocido y
utñizado en la actualidad, y se encuentra respaldado por el

., . --------------------------rn
OMG (Object ManagementGroup). (UPM., 2013).
41411
(Ctrl)

El objetivo principal de UML es proporcionar a desarrolladores de


software, arquitectos de sistemas e ingenieros de software,
herramientas para el análisis, diseño e implementación de sistemas
basados en software, así como modelar procesos de negocio y similares.
(UPM., 2013).

UML (Unified Modeling Language) o Lenguaje de Modelado


Unificado no es un lenguaje de programación, es un lenguaje de

68
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

modelado visual para especificar, visualizar, construir y documentar


artefactos de un sistema de software. Se usa para entender, diseñar,
configurar, mantener y controlar la información sobre los sistemas a
construir. (Domínguez, A., 2102).

.
' ,
·.&· UML puede usarse en las diferentes etapas del ciclo de vida del
desarrollo y en diferentes tecnologías de implementación y es
independiente del proceso de desarrollo de software. UML capta la
información sobre la estructura estática y el comportamiento dinámico
de un sistema. Un sistema se modela como una colección de objetos
discretos que interactúan para realizar un trabajo que finalmente
beneficia a un usuario externo. {Jiménez, R. {2003).

Además, al constituir una serie de herramientas de modelado, en


general, una misma realidad se representa o dibuja desde distintas
perspectivas que se complementan para finalmente dotar al conjunto de
un significado. UML está compuesto por una notación muy específica y
por las reglas semánticas relacionadas para la construcción de sistemas
de software y cuenta con varios tipos de diagramas, los cuales muestran
diferentes aspectos de las entidades representadas. UPM. (2013).

-:a- Es m11.Jy importante que los diagramas se centren en aquel aspecto


que quieren mostrar y no intentar reflejar toda la realidad en un
solo gráfico. Es importante seleccionar correctamente el modelo
adecuado y el nivel de representación correcto. UML es muy
extenso y en la práctica, la mayoría de los sistemas requieren para
su modelado sólo del uso de u11 10 o 20% de las posibilidades dadas
por UML. UPM. (2013).

69
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
uo Universidad
EM Digital
dEI Estado de México

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Arquitectura

La visualización, especificación, construcción y documentación de un


sistema de software demanda que dicho sistema pueda ser visto desde
diferentes perspectivas. Las diferentes personas implicadas en el
desarrollo de una aplicación, tales como usuarios finales, analistas,
desarrolladores, directores de gestión del proyecto, etc., ven el sistema
de diferentes formas en diferentes momentos a lo largo de la vida del
proyecto. La arquitectura de un sistema es quizá la parte más
importante que puede utilizarse para gestionar los diferentes puntos de
vista y controlar el desarrollo iterativo e incremental de un sistema a lo
largo de su ciclo de vida. (Otero, M., 2013).

Vistas de UML

La arquitectura de un sistema de software se describe mediante vistas.


Una vista es un subconjunto de construcciones de modelado que se
enfocan en un aspecto en particular del sistema. (Torossi, G.,2003).

Figura 8. Tipos de vistas en UML

Vista de ceses de Uso

Vista Lóe.ica

Vista de Componentes

Vrsta de Cona.irrencia

Vista de Oesplie¡ue

Vista de casos de Uso

Fuente UDEMEX 2019 con información de: Torossi, G.,2003

70
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Vista de Casos de Uso


 Funcionalidad externa del sistema
Vista Lógica
 Estructura estática y conducta dinámica del sistema
Vista de Componentes
 Organización de las componentes
Vista de Concurrencia
 Comunicaciones y sincronización
Vista de Despliegue
 Arquitectura física
Vista de Casos de Uso

Está dirigida al Análisis de Requisitos (lo que quiere hacer el usuario),


describe la funcionalidad del sistema, como la perciben los actores
externos, dirige el desarrollo de las otras vistas, define los objetivos
finales del sistema, permite validar el sistema. (Lara, J., 2009).

Se plasma en los siguientes diagramas:


 Diagramas de Casos de Uso
 Diagramas de Secuencia
 Diagramas de Actividad

Vista Lógica

Describe la funcionalidad interna, dirigida a diseñadores y


desarrolladores, define la estructura estática con diagramas de clases,
objetos y relaciones, define las colaboraciones dinámicas mensajes y
funciones y propiedades adicionales como persistencia, concurrencia,
interfaces y estructura interna de las clases. (Lara, J., 2009).

71
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Se plasma en los siguientes diagramas:


Estáticos
 Diagramas de Clases
 Diagramas de Objetos
Dinámicos
 Diagramas de Estado
 Diagramas de Secuencia
 Diagramas de Colaboración
 Diagramas de Actividad
Vista de Componentes

Describe los módulos del sistema y sus dependencias, modela la


arquitectura software, está dirigida a desarrolladores. (Lara, J., 2009).

Se plasma en:
 Diagramas de Componentes
Vista de Concurrencia

Describe la división del sistema en procesos y procesadores, está


dirigida a desarrolladores e integradores, resuelve problemas de uso
eficiente de los recursos, ejecución en paralelo (hilos), comunicación y
sincronización de hilos. (Lara, J., 2009).

Se plasma en diagramas:

 Dinámicos
 Diagramas de Componentes
 Diagramas de Despliegue

72
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

1.4.2 Elementos

UML se compone de muchos elementos de esquematización que


representan las diferentes partes de un sistema de software. Los
elementos UML se utilizan para crear diagramas, que representa alguna
parte o punto de vista del sistema. (Otero, M., 2013).

Para entender el UML, necesitamos constituir un modelo


conceptual del lenguaje, y esto requiere aprender tres
elementos importantes:

-
1
• Los bloques de construcción básicos del UML
• Las reglas que dictan cómo estos bloques se pueden
poner juntos
• Los mecanismos comunes que se aplican a lo largo
del UML (Otero, M., 2013).

Bloques de construcción del UML

El vocabulario del UML engloba tres tipos bloques de construcción:

Figura 9. Bloques de construcción del UML

Bl,oques ,de Cosas (abstracciones del mundo real)


constru,cción

Relaciones (conectan estas cosas)

O,iagramas. (agrupan colecciones de cosas)

Fuente UDEMEX 2019 con información de Otero, M., 2013

73
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Cosas

Hay cuatro tipos de cosas en el UML:

Figura 10. Cuatro tipos de cosas en UML

Fuente UDEMEX 2019 con información de Otero, M., 2013

 Cosas de estructura

Las cosas estructurales son los nombres de los modelos UML.


Éstas son mayormente las partes estáticas de un modelo,
representando elementos que son bien conceptuales o bien físicos.

Los siguientes elementos – clases, interfaces, colaboraciones,


casos de uso, componentes y nodos – son las cosas estructurales
básicas que nos pueden ayudar en un modelo de UML. Hay
algunas variaciones en estos elementos, tales como actores,
señales y utilidades (tipos de clases). (Otero, M., 2013).

74
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

 Cosas de comportamiento

Las cosas de comportamiento son las partes dinámicas de los


modelos del UML. Éstas son los verbos de un modelo,
representando el comportamiento en el tiempo y en el espacio.

Los dos siguientes elementos – interacciones y máquinas de


estado – son las cosas de comportamiento básicas que nos pueden
ayudar en un modelo de UML.

Semánticamente, estos elementos están conectados a varios


elementos estructurales, principalmente clases, colaboraciones y
objetos.

 Cosas de agrupamiento

Las cosas de agrupamiento son las partes de organización de los


modelos del UML. Éstas son las cajas en las que se puede
descomponer un modelo. Los paquetes son las cosas de
agrupamiento básicas con que podemos organizar un modelo de
UML. Hay algunas variaciones, tales como subsistemas (tipos de
paquetes). (Otero, M., 2013).

 Cosas de anotación
Las cosas de anotación son las partes de explicación de los
modelos del UML. Éstas son los comentarios que podemos aplicar
para describir cualquier elemento en un modelo.

Las notas son las cosas de anotación básicas que podemos incluir
en un modelo de UML. Normalmente utilizamos notas para adornar
nuestros diagramas con restricciones o comentarios que son
expresadas en texto formal o informal. (Otero, M., 2013).

75
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Relaciones

Hay tres tipos de relaciones en el UML:

Figura 11. Tipo de relaciones en UML

Relacicne:s de ascciación

Relaci,cnes de dependen,cia

Relacicnes de generalización

Fuente UDEMEX 2019 con información de Otero, M., 2013

 Relaciones de asociación

Una asociación es una relación de estructura que describe un


conjunto de enlaces, siendo un enlace una conexión entre
objetos. La agregación es un tipo especial de asociación,
representando una relación de estructura entre un todo y sus
partes.

 Relaciones de dependencia

Una dependencia es una relación semántica entre dos cosas en las


que un cambio en una cosa (la cosa independiente) puede afectar
a las semánticas de la otra cosa (la cosa dependiente). También
hay variaciones, tales como «includes» y «extends».

 Relaciones de generalización

76
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Una generalización es una relación de


especialización/generalización en la que los objetos del elemento
especializado (el hijo) son sustituibles por objetos del elemento
generalizado (el padre). De esta forma, el hijo comparte la
estructura y el comportamiento del padre. (Otero, M., 2013).

Diagramas

'' Un diagrama es la representación gráfica de un


conjunto de elementos, la mayoría de las veces
como si se tratara de un grafo conectado de
vértices (cosas) y de arcos (relaciones). [Otero,

. . . ------------------------�((tri),.
M.,2013). �,

Nosotros dibujamos diagramas para visualizar un sistema desde


diferentes perspectivas. En teoría, un diagrama puede contener
cualquier combinación de cosas y relaciones. Sin embargo, en la
práctica sólo aparece un número pequeño de combinaciones que sean
consistentes con las cinco vistas comprendidas en la arquitectura de un
sistema de software. (Otero, M., 2013).

Diagrama de casos de uso

'' Los diagramas de casos de uso documentan el


comportamiento de un sistema desde el punto de vista
del usuario. (Cáceres, J. 201 í). 1

---------------------''
77
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Los casos de uso determinan los requisitos funcionales del sistema, es


decir, representan las funciones que un sistema puede ejecutar. Su
ventaja principal es la facilidad para interpretarlos, lo que hace que sean
especialmente útiles en la comunicación con el cliente. (Cáceres, J.,
2011).

Ilustración 17. Ejemplo de diagrama de casos de uso

ATM

ca10 di uso pira el dise.'to de un1 1pllacl6n para une red bll'l<M'i• prov',si> de
<1Jeros eutomátlcos jAlMs), que serín compartidos por un con sordo de baMOs

Fuente: https://sites.google.com/site/todouml/ejercicios/ejercicios-
soluciones/20-casos-de-uso-de-un-cajero

78
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Diagrama de Secuencia

En un diagrama de secuencia se indicarán los módulos o clases que


forman parte del programa y las llamadas que se hacen en cada uno de
ellos para realizar una tarea determinada. Se realizan diagramas de
secuencia para definir acciones que se pueden realizar en la aplicación
en cuestión. (Cáceres, J., 2011).

Ilustración 18. Ejemplo de diagrama de secuencias

1� 1
''
'
�:
:
1
Pr9<: TWJtKJi!M®'Bf�·
: �i�O�NAOJí•• i
:<li��Q_O!( � :
i�(,....,....�fv�'���,�('[)r,jj.. ,m.._�� ¡ ¡
¡

'( ,Pef!cloo IQl'W{ OJMlW :


• IQ'liMJ dtMl/0 ); ¡
;( llWnM{ Resw ,
%< ewm pop¡ru,¡90011
: T1UW./litf �
:e B:ootsarra,:irU .
;.fttictia � T,¡¡er., ¡
�.strp,• eanw, enorn,1 :
1 1 1 t

Diagramas de secuencia para retirarefec:ti:vo dentro de una aplicación para


u na red iba1n ca rila pro vista de ca} eros auto mátkos (ATMs)

Fuente: https://es.slideshare.net/ricajav010679/51-ejemplos-uml

79
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Diagrama de Actividad

Un diagrama de actividad es un tipo especial de diagrama de estado que


muestra el flujo de actividad a actividad dentro de un sistema. Los
diagramas de actividad dirigen la visión dinámica de un sistema. Estos
diagramas son importantes a la hora de modelar la función de un
sistema y enfatizan el flujo de control entre los objetos. (Otero, M.,
2013).

Ilustración 19. Ejemplo de diagrama de actividad

Diagrama de Actividad

FUENTE: https://www.slideshare.net/innovalabcun/metodologiasad-1

80
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
m
GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS
Universidad
Digital
del Estado de México

Diagramas de clase

Un diagrama de clase muestra un conjunto de clases, interfaces,


colaboraciones y sus relaciones. Este diagrama es el que más se
encuentra en los sistemas de modelado orientado a objetos. Los
diagramas de clase dirigen la visión de diseño estática de un sistema.
(Otero, M., 2013).

Ilustración 20. Ejemplo de diagrama de clase

Pfflona
• nombre
• eci.d
+ rnostail{)


1 1
&npe¡,do Ciente
� • IUdcloJ)Mo
o. · '*4ono.�.anaao
• mowa, ()
-��_ne()
+ffl05tAr()

'f
O.rectlvo
(1 ..

l
O.
Áelllnlls
1.
o.
-� � � l
+ mowa,O
1-� 1

Diagrama de Clase

Fuente: https://sites.google.com/site/todouml/ejercicios/ejercicios-
soluciones/diagrama-de-clases-empleados-de-una-empresa

81
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Diagramas de objeto

Un diagrama de objeto muestra un conjunto de objetos y sus relaciones.


Este diagrama representa una fotografía estática de instancias de las
cosas que se encuentran en un diagrama de clase. Los diagramas de
objeto dirigen la visión de diseño estática o la visión de proceso estática
de un sistema, al igual que los diagramas de clase, pero desde la
perspectiva del mundo real. (Otero, M., 2013).

Ilustración 21. Ejemplo de diagramas de objeto

·--
-.--·. -

_...,11 .
. .

Diagrama de Objetos

82
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Diagrama de Estado

Un diagrama de estado muestra una máquina de estado, que consta de


estados, transiciones, eventos, acciones y actividades. Los diagramas
de estado dirigen la visión dinámica de un sistema. Estos diagramas son
importantes a la hora de modelar el comportamiento de una interfaz,
clase o colaboración, y enfatizan el comportamiento de un objeto
ordenado por los eventos que se suceden, lo cual es especialmente útil
en los sistemas de tiempo real. (Domínguez, A., 2012).

Ilustración 22. Ejemplo de diagramas de estado

Con devolvef()
Con reservar id I
en Retraso uSlRes = id Retraso y
reservado
reparaclon
reparado() (ge ate()>fp•30) (getDate( fp+30J

en
blblJoteca

en
reserva

Diagrama de Estado

Fuente: https://es.slideshare.net/maricandemartinezalcudia/ejercicios-uml-
37356452

83
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Diagrama de Colaboración

Un diagrama de colaboración muestra la interacción entre varios objetos


y los enlaces que existen entre ellos, enfatiza la organización estructural
de los objetos que envían y reciben mensajes. A diferencia de un
diagrama de secuencias, un diagrama de colaboraciones muestra las
relaciones entre los objetos, no la secuencia en el tiempo en que se
producen los mensajes. Los diagramas de secuencias y los diagramas de
colaboraciones expresan información similar, pero en una forma
diferente, son isomórficos, es decir, se pueden transformar el uno en el
otro. (Otero, M., 2013).

Ilustración 23. Ejemplo de diagrama de colaboración

1.3 (relraso>O): rmuttartretraso)

1.3.1 e l(mufl.1,a()]: mu!ti,:=


erea.te(fe,ctia.rebaso) .,:;

m111ta¡M1.11ta __....
1.3.1 b 1mu1ca.<>O]t ooyooe(led'la ,relra'so)

Diagrama de Colaboración

84
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Diagrama de componentes

Un diagrama de componente muestra las organizaciones y dependencias


entre un conjunto de componentes. Los diagramas de componente
dirigen la visión de implementación estática de un sistema. Estos
diagramas se relacionan con los diagramas de clase en el sentido de que
un componente, normalmente, engloba a una o varias clases, interfaces
o colaboraciones. (Otero, M., 2013).

Ilustración 24. Ejemplo de diagrama de componentes

� g----1 g--1
8�----1 ¡
25 c.. . :o.c--l
8--1 8--1
�......... �--1 . §---f"
.2--1 1
.... _gc-oeoc( y •• -·--

8.tUcM�M
) l,sbdM de
cuenu
� "----
Diagrama de Componentes

85
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Diagrama de Despliegue

Un diagrama de despliegue muestra la configuración de los nodos que


se procesan en tiempo de ejecución y los componentes que están
dentro de ellos. Los diagramas de despliegue dirigen la visión de
despliegue estática de una arquitectura. Estos diagramas se relacionan
con los diagramas de componente en el sentido de que un nodo
encierra, normalmente, uno o más componentes. (Domínguez, A. ,
2102).

Ilustración 25, Ejemplo de diagrama de despliegue

r r--

-..
,

-l.-=--,
W,4,.1 •• -.11

Diagrama dGi Daspliciguci

Fuente: https://www.slideshare.net/innovalabcun/metodologiasad-1

86
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Reglas del UML

. ;

e ª aS
u e ...1•
Los bloques de construcción del UML no se pueden mostrar todos ellos
juntos de una forma aleatoria. Al igual que cualquier otro lenguaje, el
UML tiene una serie de reglas que especifican lo que un modelo bien
formado debería contemplar. Un modelo bien formado es un modelo
semánticamente consistente consigo mismo y en armonía con el resto
de los modelos con los que se relaciona.

El UML posee reglas semánticas para:

• Nombres: ¿Cómo podemos llamar a las cosas, relaciones y


diagramas?

• Ámbito: ¿Cuál es el contexto que da un significado específico a un


nombre?

• Visibilidad: ¿Cuántos de esos nombres van a ser vistos y usados por


otros?

• Integridad: ¿Cuántas cosas se relacionan unas con otras de manera


apropiada y consistente?

• Ejecución: ¿Qué significa realmente ejecutar o simular un modelo


dinámico? (Otero, M., 2013).

87
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Mecanismos comunes del UML

e•
a
u e ..1 La construcción de los bloques del 1J..M1 resulta más sencilla y más
armoniosa, si se realiza de acuerdo a un patrón de características
comunes. {Otero, M., 2013).En UML se aplican de forma
consistente estos cuatro mecanismos comunes:

Figura 12. Mecanismos comunes en UML

Fuente UDEMEX (2019) con información de Otero M., 2013

88
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

1. Especificaciones

Detrás de cada parte de la notación gráfica del UML hay una


especificación que proporciona una declaración textual de la sintaxis
y semánticas de dicho bloque de construcción. Por ejemplo, detrás
de un icono de clase hay una especificación que proporciona el
conjunto completo de atributos, de operaciones (incluyendo sus
formatos completos) y de comportamientos que engloba dicha clase;
visualmente, dicho icono de clase podría mostrar únicamente una
pequeña parte de esta especificación. (Otero, M., 2013).

2. Adornos

La mayoría de los elementos en el UML tienen una notación gráfica y


directa que proporciona una representación visual de los aspectos
más importantes del elemento. Por ejemplo, la notación de clase
también expone los aspectos más importantes de una clase,
principalmente su nombre, sus atributos y sus operaciones. Pero una
especificación de clase puede incluir otros detalles, tales como si es
abstracta o la visibilidad de sus atributos y de sus operaciones.
Muchos de estos detalles se pueden añadir como adornos textuales o
gráficos dentro del rectángulo básico de la clase. (Otero, M., 2013).

3. Divisiones comunes

A la hora de modelar sistemas orientados a objetos, el mundo


aparece dividido como mínimo en un par de formas. Por ejemplo,
está la división de clase y de objeto. Una clase es una abstracción,
mientras que un objeto es una manifestación concreta de dicha
abstracción en el UML. Podemos modelar tanto las clases como los
objetos.

89
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Gráficamente, el UML distingue un objeto de una clase, ya que el


objeto aparece con un formato algo diferente y además subrayado.
(Otero, M., 2013).

4. Mecanismos de extensión

El UML proporciona un lenguaje estándar para escribir modelos de


software, pero no es posible para un lenguaje cerrado expresar todos
los detalles de todos los modelos en todos los dominios a lo largo de
todo el tiempo. Por esta razón, el UML es un lenguaje abierto, que se
puede extender de forma controlada. Los mecanismos de extensión
del UML incluyen:

• Estereotipos

Un estereotipo extiende el vocabulario del UML, permitiendo que


podamos crear nuevos tipos de bloques de construcción que son
derivados a partir de los ya existentes y que son específicos a
nuestro problema. Se distinguen claramente ya que van encerrados
entre los siguientes delimitadores: « ». (Otero, M., 2013).

• Valores añadidos (tagged values)

Un valor añadido, en el sentido de una “coletilla”, extiende las


propiedades de un bloque de construcción del UML, permitiendo que
podamos crear nueva información en la especificación de dicho
elemento. En la práctica se utilizan muy poco. (Otero, M., 2013).

• Restricciones

Una restricción extiende las semánticas de un bloque de construcción


del UML, permitiendo que podamos añadir nuevas reglas o modificar

90
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
IJ� Universidad
Wi Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

las ya existentes. Se distinguen claramente ya que van encerrados


entre los siguientes delimitadores: { }. (Otero, M., 2013).

Es momento de resolver la actividad complementaria que te permitirá


reforzar los aprendizajes adquiridos hasta el momento.

4C Actividad Com lementaria 1.2


Posteriormente realizar la actividad de aprendizaje 1.2 correspondiente
a este tema.

J � Actividad de A rendiza·e 1.2

91
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
E'uM
o, Universidad
Digital dEI Estado de Mé XICO
.

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

RESUMEN UNIDAD 1

Esta unidad se puede resumir de la siguiente forma:

Figura 13. Elementos del modelo Describe los elementos objeto y clase y
de objetos
los principios fundamentales del modelo

Elementos del de objetos:

modelo de  Abstracción
objetos  Modularidad.
 Encapsulamiento.
 Herencia
 Polimorfismo

Figura 14. Programación y


lenguajes O.O Describe la Programación y Lenguajes
Programación y Orientados a Objetos y sus principales
lenguajes características.
orientados a
objetos

Figura 15 Metodologías O.O Describe lo que es una metodología de


análisis y diseño orientado a objetos, y las
Metodologías
orientadas a metodologías que dieron origen al Lenguaje
objetos de Modelado Unificado:
 Metodología de Booch
 Metodología de James Rumbaugh

92
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO1.DE
UNIDAD EL MÉXICO
PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

Figura 16. Lenguaje de modelado


unificado

Lenguaje de
Describe al Lenguaje de modelado unificado
modelado
y sus tres elementos importantes:
unificado
 Los bloques de construcción
 Las reglas
 Los mecanismos

CRITERIOS DE EVALUACIÓN DE LA UNIDAD 1

Figura 17. Criterios de evaluación Unidad I

ACTIVIDAD DE
TEMA (S} VALOR
APRENDIZAJE

l ] e
1.1. Elementos del modelo de
objetos

e
1.2. Programación y lenguajes Mapa conceptual 5%
Orientados a Objetos �

J
1.3. Metodologías orientadas a
objetos
Cuadro comparativo 5%
1 .4. Lenguaje de modelado
unificado �
TOTAL
10%
UNIDAD 1

93
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

REFERENCIAS ANEXAS AL PROGRAMA

1. Arenas, l. (2008). Programación Orientada a Objetos en Java.


Facultad de Contaduría y Administración. Universidad Nacional
Autónoma de México. Recuperado el 4 de junio de 2014, de:
http://fcasua.contad.unam.mx/apuntes/interiores/docs/98/opt/jav
a.pdf.
2. AUI. (2012).Polimorfismo. Open Courses. Atlantic International
University. Recuperado el 4 de junio de 2014, de:
http://cursos.aiu.edu/Lenguajes%20de%20Programacion%20Orie
ntados%20a%20Objetos/PDF/Tema%204b.pdf
3. Bustinduy, A. (2013). Polimorfismo. Departamento de Ingeniería
Industrial. Escuela Politécnica Superior. Universidad Antonio de
Nebrija. Recuperado el 4 de junio de 2014, de:
http://www.nebrija.es/~abustind/Informatica/MetodologiaII/Polim
orfismo.pdf
4. Chávez, V. y Olivares J. (2002). Metodología OMT. Ingeniería En
Sistemas Computacionales. Departamento de Sistemas y
Computación. Instituto Tecnológico de Morelia. Recuperado el 4 de
junio de 2014, de:
http://dsc.itmorelia.edu.mx/~jcolivares/documents/omt
5. Carballo, Y., (2007). Programación orientada a objetos.
Universidad Central de Venezuela. Recuperado el 4 de junio de
2014, de:
http://webdelprofesor.ula.ve/ingenieria/hyelitza/materias/program
acion2/oxo/ProfaYusneyi_Tema8_POOClasesyObjetos.pdf
6. Cáceres, J. (2011). Programación Orientada a Objetos.
Universidad de Alcalá. Recuperado el 4 de junio de 2014,

94
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

de:http://www2.uah.es/jcaceres/cursos/java/archivos/temas/curs
oJava_3.pdf
7. Cáceres, J. (2011). Diagrama de Caso de Usos. Universidad de
Alcalá. Programación orientada a objetos. Universidad Central de
Venezuela. Recuperado el 4 de junio de 2014, de:
http://www2.uah.es/jcaceres/capsulas/DiagramaCasosDeUso.pdf
8. Cáceres, J. (2011). Diagrama de Secuencia. Universidad de Alcalá.
Programación orientada a objetos. Universidad Central de
Venezuela. Recuperado el 4 de junio de 2014, de:
http://www2.uah.es/jcaceres/capsulas/DiagramaSecuencia.pdf
9. Cachero. C. (2013). Introducción al paradigma orientado a objeto.
Departamento de Lenguajes y Sistemas Informáticos. Universidad
de Alicante. . Recuperado el 4 de junio de 2014, de:
http://rua.ua.es/dspace/bitstream/10045/4011/1/1-IntroPOO-
v0.5.pdf
10. Casado, C. (2012). Entornos de desarrollo. RA-MA EDITORIAL.
ISBN978-84-9964-169-0. España.
11. Domínguez, A. (2102). UML y el proceso unificado. Instituto
Tecnológico de Durango. Recuperado el 4 de junio de 2014, de:
http://ac.itdurango.mx/araceli_dguez/DESARROLLO%20E%20IMP
LEMENTACION%20DE%20SI/DES_E_IMP_SI-
UNIDAD_I/DES_E_IMP%20APUNTES%20UNI-1.pdf
12. Domínguez, A. (2102). UML y el proceso unificado. Instituto
Tecnológico de Durango. Recuperado el 4 de junio de 2014, de:
http://ac.itdurango.mx/araceli_dguez/DESARROLLO%20E%20IMP
LEMENTACION%20DE%20SI/DES_E_IMP_SI-
UNIDAD_I/Introduccion_a_UML.PDF

95
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

13. Izquierdo, L. (2010). Introducción a la Programación Orientada a


Objetos. Recuperado el 4 de junio de 2014, de:
http://luis.izqui.org/resources/ProgOrientadaObjetos.pdf
14. ITESCAM, (2014). Conceptos de Programación Orientada a
Objetos. Instituto Tecnológico Superior de Calkiní. Estado de
Campeche, México. Recuperado el 4 de junio de 2014, de:
www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r69317.DO
CX
15. Jiménez, R. (2003). Análisis y Diseño Orientado a Objetos de un
Framework para el Modelado Estadístico con MLG. Universitat de
les Illes Balears. Recuperado el 4 de junio de 2014, de:
http://ibdigital.uib.es/greenstone/collect/tesisUIB/index/assoc/TD
X-0713/104-1125.dir/TDX-0713104-112553.pdf
16. Lara, J. (2009). Introducción al Análisis y Diseño Orientado a
Objetos. Universidad Autónoma de Madrid. Recuperado el 4 de
junio de 2014, de:
http://astreo.ii.uam.es/~jlara/TACCII/4_ADOO.pdf
17. López, R., (2003). Análisis y Diseño Orientado a Objetos de un
Framework para el Modelado Estadístico con MLG. Universitat de
les Illes Balears. Recuperado el 4 de junio de 2014, de:
http://ibdigital.uib.es/greenstone/collect/tesisUIB/index/assoc/TD
X-0713/104-1125.dir/TDX-0713104-112553.pdf
18. Otero, M. (2013). Introducción a UML . Departamento de
Lenguajes y Sistemas Informáticos Instituto Tecnológico Superior
de Calkiní Estado de Campeche, México. Recuperado el 4 de junio
de 2014, de:
http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r253
87.PDF

96
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

19. Ponce de León, P. (2013). Introducción al paradigma orientado a


objeto. Departamento de Lenguajes y Sistemas Informáticos.
Universidad de Alicante. . Recuperado el 4 de junio de 2014, de:
http://rua.ua.es/dspace/bitstream/10045/18716/1/UD1-
IntroPOO.pdf
20. Rodríguez, A. (2008).Modularidad: Un factor vital para la calidad
del software. Revista ciencias. Publicaciones científicas.
Recuperado el 4 de junio de 2014, de:
http://www.revistaciencias.com/publicaciones/EkEppkkyAlHWhlhK
Zu.php
21. (Roque, R., 2014). Introducción al paradigma de la Programación
Orientada a Objetos (POO). Instituto Tecnológico de Nuevo
Laredo. Nuevo Laredo Tamaulipas, México. Recuperado el 4 de
junio de 2014, de:
http://www.itnuevolaredo.edu.mx/takeyas/Apuntes/POO/Apuntes/
01.-%20Introduccion%20a%20la%20POO.pdf
22. Romero, P. (2013). El método de Booch. Análisis y Diseño
Orientado a Objetos. Instituto Tecnológico de la Laguna.
Secretaria de Educación Pública. Recuperado el 4 de junio de
2014, de:
http://www.itlalaguna.edu.mx/Academico/Carreras/sistemas/Anali
sis%20y%20dise%C3%B1o%20orientado%20a%20objetos/MBoo
ch.pdf
23. Romero, P. (2013). Ingeniería de software orientado a objetos
OOSE. Instituto Tecnológico de la Laguna. Secretaria de Educación
Pública. Recuperado el 4 de junio de 2014, de:
http://www.itlalaguna.edu.mx/Academico/Carreras/sistemas/Anali

97
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
o, Universidad
E'uM Digital .
dEI Estado de Mé XICO

UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADO A OBJETOS

sis%20y%20dise%C3%B1o%20orientado%20a%20objetos/Resu
men3.pdf
24. Rossi, B., Britos, P. y García, Martínez R. (2012) Modelado de
objetos. CAPIS. Centro de Actualización Permanente en Ingeniería
de Software. Escuela de Posgrado. ITBA. Recuperado el 4 de junio
de 2014, de: http://laboratorios.fi.uba.ar/lsi/rgm/articulos/R-
ITBA-21-modeladodeobjetos.pdf
25. Torossi, G. (2003). Modelado de Objetos con UML. Diseño de
Sistemas. Facultad Regional Resistencia Universidad. Tecnológica
Nacional. Recuperado el 4 de junio de 2014, de:
http://www.chaco.gov.ar/utn/disenodesistemas/apuntes/oo/Apunt
eUML.pdf
26. UPM. (2013). Breve Introducción a la representación
UML.Departamento de Electrónica Automática e Informática
Industrial. Universidad Politécnica de Madrid. Recuperado el 4 de
junio de 2014, de:
http://www.elai.upm.es/moodle/pluginfile.php/2299/mod_resourc
e/content/2/Tema8_libroC%2B%2B2013.pdf
27. Valero, A. (2013). Orientación a Objetos. IEAROBOTICS.
Recuperado el 4 de junio de 2014, de:
http://iearobotics.com/alberto/lib/exe/fetch.php?media=teaching:
dia_clases.pdf

98
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
UD Universidad
ital
GOBIERNO DEL
EMo·dEl'L de México

ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

UNIDAD 2

PRINCIPIOS DEL LENGUAJE JAVA

En el siguiente esquema se representan los contenidos temáticos


correspondientes a la segunda unidad temática de Programación II,
cada uno de estos temas guardan relación entre sí.

SECUENCIA DIDÁCTICA «UNIDAD 2»

Figura 1. Mapa de contenidos temáticos unidad 2

2.Estructuras de 2.1. Estructura general


programación de un programa
1
1

12.1.1
2.4. lSentencias o expresiones NollM!'ncbtura.
2.4.2 Comentarios 2.1.2 Estru ctu ra
2.4.3 Bifurcaciones
,._ _
2.4.4 Bucles
____Jl'P
111111/C.

UNIDAD 2
PRINCIPIOS DEL
LENGUAJE
JAVA

* 2.2.1 Nombres de Variables


2.3.1 Definición 2.2.2 Tipos Primitivos de Variables
2.3.2 Tipos de operadores 2.2.3 Cómo se definen e inicializan
las variables
2.2.4 Visibilidadyvida de las
variables
2.2.5.Casos especiales: Clases
Bígtnteger v BigDecimal

Fuente: UDEMEX 2019

1
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

INTRODUCCIÓN

Esta unidad tiene como objetivo describir la estructura general de un


programa en JAVA y los elementos que lo integran.

En la primera sección, podrás familiarizarte con la estructura general de


un programa en lenguaje Java y sus elementos principales:
comentarios, definiciones de clase, definiciones de método,
identificadores y sus normas básicas, sentencias y la palabras clave del
lenguaje de programación Java. En el segundo tema, estudiarás las
variables y te familiarizaras con sus tipos, aprenderás cómo se definen e
inicializan las variables, identificaras la visibilidad y vida de las variables.
En el tercer tema aprenderás que Java es un lenguaje rico en
operadores e identificaras a cada una de sus clases. Finalmente
conocerás las estructuras de selección, de repetición y de salto que
posee Java.
Cada contenido temático de esta unidad ha sido diseñado apegado a la
nueva estrategia de aprendizaje por competencias, por lo tanto es
necesario que sigas todas las instrucciones, así como dar seguimiento a
las actividades de aprendizaje, a su vez demostrar interés en las
evaluaciones y asesorías para que puedas alcanzar el éxito y cumplas tu
meta de obtener la licenciatura.

2
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

COMPETENCIAS ESPECÍFICAS

Figura 2. Competencias específicas unidad 2

Conoce la estructura general de un programa en JAVA y los elementos que lo integran,


a través de los ejercicios y ejemplos realizados, de manera constante, para desarrollar
su habilidad de programación.

�Analiza y sintetiza el funcionamiento de cada parte de un programa , a través de su


habilidad de investigación, realizándolo de una manera critica, para poder conocer los
HABIUDADES posibles errores de compilación.

Actúa con responsabilidad, a través de la entrega oportuna de sus actividades, para


desarrollarse de manera profesional.

®®@
Fuente: UDEMEX 2019

3
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

2.1. Estructura general de un programa

'' Java es un leng11JJajedeprogramación desarrollado por


Sun Microsystems en 1995 y es 11.m leng11Jaje muy
valorado por su portabilidad. (Ladrón de ouevara, J.,
2011).

-------------------''
Para conseguir la portabilidad de los programas Java se utiliza en un
entorno de ejecución para los programas compilados. Este entorno se
denomina Java Runtime Environment (JRE). Es gratuito y está
disponible para los principales sistemas operativos. Esto asegura que el
mismo programa Java pueda ejecutarse en Windows, Mac,OS, Linux o
Solaris. (Ladrón de Guevara, J., 2011).

La compañía Sun Microsystems describe el lenguaje Java como: simple,


orientado a objetos, distribuido, interpretado, robusto, seguro, de
arquitectura neutra, portable, de altas prestaciones, multitarea y
dinámico (García de Jalón, J., 2000).

\ . ' Los
-.a- programas Java se compilan a un lenguaje intermedio,
denominado Bytecode. Este código es interpretado por la
máquina virtual de Java del entorno de ejecución (J RE) y así se
consigue la portabilidad en distintas plataformas. El JRE es una
pieza intermedia entre el código Bytecode y los distintos sistemas
operativos existentes en el mercado, Un programa Java
compilado en Bytecode se puede ejecutar en sistemas operativos
como Windows., Linux, Mac Os, Solaris, IBlackBerry OS., iOs o
Android utilizando el entorno de ejecución de Java (J RE)
apropiado. (Ladrón de Guevara., J . r 201]).

4
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO

.
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

'- ª aS
U e .. 7 La plataforma de desarrollo de Java, denominada Java
• Development Kit (JDK), se ha ido ampliando. En realidad Java
no solo es un lenguaje de programación. Java es un lenguaje,
una plataforma de desarrollo, un entorno de ejecución y un
conjunto de librerías para desarrollo. Las librerías para
desarrollo se denominan Java Application Programming
Interface (Java API). (Ladrón de Guevara, J., 2011).

Ilustración 1. Elementos de plataforma Java

E.lem.en:tos de la plataforma Java

."vf¡,·hmtw.-,
Jiro¡r..,,r'r'i"I
, .. i:e,,rt,Kt

;
, �

Fuente: http://desarrolloappandroid.wordpress.com/

2.1.1 Estructura

Utilicemos el siguiente ,ej,emplo para comenzar a


familia1iza1nos con la estructura de un programa en
Jengu,aje Java y así Jogr,ar identificiar sus elementos.

5
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

En este programa se pueden identificar los siguientes elementos del


lenguaje Java: comentarios, definiciones de clase, definiciones de
método y sentencias.

/*
* Este programa escribe el texto "Primer Programa" en la consola
* utilizando el método System.out.println()
*/
public class PrimerPrograma {
public static void main (String[] args) {
System.out.println("Primer Programa");
}
}

El programa comienza con un comentarlo, El delimitador de


inicio de un comentario es I" v el delimitador de fin de
comentario, es "], El texto del primer comentario de este
ejemplo sería: Este programa escribe el texto "Primer
Programa" en la consola utilizando el método
System.out.println(). Los comentarios son ignorados por el
compilador y solo son útiles para el programador.

• Los comentarios ayudan a explicar aspectos relevantes de


·A·
un programa y lo hacen más legible. En un comentario se
puede escribir todo lo que se desee, el texto puede ser de
u na o más líneas.

6
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

-:a- La primera línea del programa, después del primer


comentario. Define una clase que se llama
PrimerPro,grama. La definición de la clase comienza por el
carácter {y termina con el carácter}. El nombre de la clase
la define el programador. Un programa puede construirse
empleando varias clases. En el caso más simple se utilizará
una única clase.

Después de la definición de clase se escribe la definición del método


main(). Todos los programas Java deben incluir un método main().
Esta clase contiene el programa, rutina o método principal: main() y en
éste se incluyen las sentencias del programa principal. Estas sentencias
se separan entre sí por caracteres de punto y coma.

,,
l------''
Un método es una secuencia de
sentencias ejecutables.

Las sentencias de un método quedan delimitadas por los


caracteres { y } que indican el inicio y el fin del método,
respectivamente.

Dentro del método main() se incluye una sentencia para mostrar un


texto por la consola. Los textos siempre se escriben entre comillas
dobles para diferenciarlos de otros elementos del lenguaje.

7
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

...,_
.. Todas las sentencias de un programa Java deben terminar
con el slmbolo punto y coma. Este símbolo indica al
compilador que ha finalizado una serntencia.

e•
s
;

3 a
U e' . .1
.. En un programa Java las sentencias se ejecutan
secuencialmente, una detrás de otra en el orden en
que están escritas. {Ladrón de Guevara, J . 2011}. A 1

este proceso se le conoce como ejecuciórn secuencial.

• - El método main es el punto de inicio de toda aplicación en


..�
Java, y debe empezar con:

publlc static void mairn( String args.[I )

La palabra clave void indica que un método realizara una


tarea, pero no devolverá información.

Ahora conozcamos los elementos de un programa Java

2.1.2 Nomenclatura

Los elementos de un programa en Java son:

8
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Figura 3. Elementos de un programa en Java


Coment.ariode blaque Comentariode docwnent.3ciÓn Coment.ariode fin de linea

identificadores

Normas básicas p,ara los identificadores

Variables y valores


Vari.ablesdetipo primitivo V.ari.ablesde refeencia


N umeros e rrteros Numeros reales Caracteres Valores booleanos

Literales
Enteros: decimal, octal,
Re.a les: puntodecimal Booleanos: true y false Caracteres: "
hexadecimal.

�p reste nesaritmético-1,égicas Con11ersiÓn de tipos

Fuente: UDEMEX 2019 con información de: Sanchez, J., 2004

9
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Comentarios

e•
En un programa Java hay tres
tipos de comentarios ...


........� Comentario de bloque. Empieza por/* y
termina por'*/. El compilador ignora todo el
texto contenido dentro del comentario.

/*
* El programa PrimerPrograma se utiliza para
aplicar los
* métodos System.out.printO y
System. out.p rintl nO
*/

• Comentario de documentación. Empieza por


...........
r* y termina por * /. Java dispone de la
herramienta javadoc para documentar
automáticamente los programas. En un
comentario de documentación normalmente
se indica el autor y la versión del software.

/**
* Programa PrimerPrograma
* @author Principios del Lenguaje Java
* @version 1.0

10
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

* @see Referencias
*/

En el código javadoc se pueden usar etiquetas especiales, las


cuales comienzan con el símbolo @. Pueden ser:
@author. Tras esa palabra se indica el autor del documento.
@version. Tras lo cual sigue el número de versión de la
aplicación
@see. Tras esta palabra se indica una referencia a otro
código Java relacionado con éste
@since. Indica desde cuándo está disponible este código
@deprecated. Palabra a la que no sigue ningún otro texto
en la línea y que indica que esta clase o método está
obsoleta u obsoleto
@throws. Indica las excepciones que pueden lanzarse en
ese código
@param. Palabra a la que le sigue texto qué describe a los
parámetros que requiere el código para su utilización (el
código en este caso es un método de clase). Cada parámetro
se coloca en una etiqueta @param distinta, por lo que puede
haber varios @param para el mismo método
@return. Tras esta palabra se describe los valores que
devuelve el código (el código en este caso es un método de
clase) (Sanchez, J., 2004)

11
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA


-:.- Comentario de fin de línea. El uso de comentarios
hace más claro y legible un programa. En los
comentarios se debe decir qué se hace, para qué y
cuál es el fin de nuestro programa. Conviene utilizar
comentarios siempre que merezca la pena hacer una
aclaración sobre el programa. Este tipo de comentario
empieza con los caracteres // y termina al final de la
línea. (Ladrón de Guevara, J., 2011) .

// El método System.out.println() salta la línea

Nota: Las líneas en blanco y espacios se utilizan para facilitar la lectura


de los programas. En conjunto, las líneas en blanco, los espacios y los
tabuladores se conocen como espacio en blanco. Los espacios y los
tabuladores se conocen específicamente como caracteres de espacio en
blanco. El compilador ignora el espacio en blanco.

Identificadores

Existen reglas muy estrictas sobre los nombres que se utilizan


como identificadores de clases, de variables o de métodos


-:... Todo identificador debe empezar con una letra que
puede estar seguida de más letras o dígitos. Una letra
es cualquier símbolo del alfabeto y el carácter ':'. U111
dígito es cualquier carácter entre 'O' y '9 Cualquier 1·
..

identificador que empiece con una letra seguida de


más letras o dígitos es válido siempre que no forme
parte de las palabras reservadas del lenguaje Java.
(Ladrón de Guevara, J., 2011).

12
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

11
.......� Los nombres de Java son sensibles a las letras
mayúsculas y minúsculas., así, las varia bles masa, Masa
y MASA son consideradas variables completamente
diferentes. Cuando un nombre consta de varias
palabras es habitual poner una a continuación de otra,
poniendo con mayúscula la primera letra de la palabra
que sigue a otra. (García de Jalón, J., 2000).

Pensemos en los siguientes ejemplos:

elMayor(),VentanaCerrable,RectanguloGrafico, addWindowListener().

Ejemplo de identificadores validos:

Hola,hola,numero,numeroPar,numeroImpar,numero_impar,numero_par,
nombre, apellido1, apellido2

Ejemplo de identificadores NO validos:

1numero

Nota: no es válido porque empieza con un dígito, no con una letra.

El lenguaje Java distingue entre letras mayúsculas y minúsculas, esto


significa que los siguientes identificadores son distintos:

numeroPar , numeropar

13
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA


'- a
ue..1
Existen Normas básicas para los identificadores ...

 Los nombres de objetos, los nombres de métodos y variable


miembro, y los nombres de las variables locales de los métodos,
comienzan siempre por minúsculas. Si se trata de un nombre
compuesto cada palabra debe empezar con mayúscula y no se
debe utilizar el guión bajo para separar las palabras. (Ladrón de
Guevara, J., 2011).

Por ejemplo, los siguientes identificadores son válidos:

calcularSueldo, setNombre,getNombre, main(), dibujar(),


numRectangulos, x, y, r.

 Los nombres de clases e interfaces empiezan siempre con


mayúsculas. En los nombres compuestos, cada palabra comienza
con mayúscula y no se debe utilizar el guión bajo para separar las
palabras. (Ladrón de Guevara, J., 2011).

Por ejemplo, los siguientes nombres son válidos:

HolaMundo,PerimetroCircunferencia,Alumno,Profesor, Geometria,
Rectangulo, Dibujable, Graphics, Vector, Enumeration.

 Los nombres de las variables finales, es decir de las constantes, se


escriben en mayúsculas. Para nombres compuestos se utiliza el
guión bajo para separar las palabras. (García de Jalón, J., 2000).

14
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Por ejemplo, los siguientes son nombres válidos:


PI, MINIMO, MAXIMO o TOTAL_ELEMENTOS

• ;.

aS1
u e...• Las palabras clave no se pueden utilizar
como nombres de variables.

Las palabras reservadas del lenguaje Java se listan en la siguiente tabla


y se escriben con minúscula.

Ilustración 2. Las palabras reservadas del lenguaje Java.

abs.tr-act assert boole:11n break byte


C3S-! catch chair class conti 11ue
dehult do do�il le elo;e enu11
exte!lds ñr!<' 1 �rl<'lly Boat for
;f iapl�nu hpQr't, i nst3nteQf int
i 1H@rfacé long nath! Mw pub!)!"

prilfl.lte prote.:t� p b1'i( returri :tlwirt

staric strictfp npcr S'll'itch s.yrKhronüed


tli,s throw throw:s transient try
v<1id volatil� wM la
PI/abras cli;pt � M lt utilit:iflf if(lwnntrJ't
COl'ISt goto

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978-970-26-1190-5

15
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

-'a-
• Java también contiene las palabras v
las cuales son literales boleanas, y null, que es la literal que
reservadas true false}'

representa una referencia a nada. Al igual que las palabras


clave, esas palabras reservadas no se pueden utilizar como
identificadoras. (Deitel, P. y Deitel, "}' 2008).

Sentencias o expresiones

'' Una expresión es un conjunto variables


unidas por operadores . Son órdenes que
se le dan a la computadora para que
realice una tarea determinada. (García de

........_
Jalón, J., 2000). _ ''

Una sentencia es una expresión que acaba en punto y coma (;). Se


permite incluir varias sentencias en una línea, aunque lo habitual es
utilizar una línea para cada sentencia. (García de Jalón, J., 2000).

Por ejemplo:

i = 0; j = 5; x = i + j; // Línea compuesta de tres sentencias

2.2. Variables

'' Las variables son los contenedores de los datos


que utiliza un programa. Sánchez, J . , 2004).

------------------'' 16
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Las variables se usan para almacenar valores, realizar cálculos,


modificar los valores almacenados, mostrarlos por la pantalla,
almacenarlos en disco, enviarlos por la red, etc. Una variable
almacena un único valor. Tienen un nombre (un identificador) que
sólo puede contener letras, números y el carácter de subrayado
(también es válido el símbolo $). El nombre puede contener cualquier
carácter Unicode. (Sánchez, J., 2004).

2.2.1 Nombres de Variables

Los nombres de variables pueden ser cualquier conjunto de caracteres


numéricos y alfanuméricos, sin algunos caracteres especiales
utilizados por Java como operadores o separadores ( ,.+-*/
etc.).

Una variable se define por un nombre, un tipo y el rango de valores que


puede almacenar:

El nombre de una variable permite hacer referencia a ella. Este


nombre debe cumplir las reglas aplicables a los identificadores
previamente vistas.

El tipo indica el formato de los valores que puede almacenar la


variable: cadenas de caracteres, valores lógicos, números enteros,
números reales o tipos de datos complejos.

El rango indica los valores que puede tomar la variable.

17
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
!:.�� · Universidad
� · Digital
del Estado de México

GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

RECUERDA:

Las palabras reservadas no se


pueden utilizar como nombre.sde
varia bles.!!

De acuerdo con el tipo de información que contienen, en Java hay


dos tipos principales de variables. (García de Jalón, J., 2000).

Figura 4. Tipos de variables en Java de acuerdo con el tipo de información

Variables de Variables
tipos primitivos. referencia

Las variables referencia


son referencias o nombres
Están definidas mediante
de una información más
- un valor único. (García de
- compleja: arrays u objetos
Jalón, J., 2000).
de una determinada clase ..
(García de Jalón, J., 2000).

Fuente: UDEMEX 2019 con información de: García de Jalón, J., 2000

Desde el punto de vista de su papel en el programa, las variables


pueden ser:

18
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Figura 5. Tipo de variables en Java de acuerdo al papel que ejecutan en el programa

Variables miembro de una clase.


• Se definen en una clase, fuera de cualquier método; pueden ser tipos
primitivos o referencias.. (Garda de Jalón, J., 2000).

Fuente: UDEMEX 2019 con información de: García de Jalón, J. 2000

2.2.2 Tipos Primitivos de Variables

Las variables en Java pueden ser de un tipo primitivo de datos o una


referencia a un objeto. Los tipos primitivos permiten representar valores
básicos. Estos tipos se clasifican en números enteros, números reales,
caracteres y valores booleanos.

19
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Ilustración 3. Tipos primitivos de variables

[.stándar
boolean
(Nota: una represenucíén bolean ei ctpcd6ca pua la M,quina virtual de Java en cada pbufonru].
cnar 16 a FFFF (O� 65535) (ISO, conjunto de
e:ancteres Unloode)
byte 8 -128 a+ 127 (-27 a 21- 1)
snere 16 -32,768 a +32.767 (-21' a 21' - 1)
rnt 32 -2, 147,483.648 1 +2.147,483,647 (-2)1 a 2"1 - 1)
long 64 -9,22l372,036,854,775,808 1
+9,223.372,036,854,775,807 (-2'-' a 2'-'- 1)
noat 32 �"l" neptiw: (IEEE 754,
-3.4028234663852886E+38 a punto fletante)
-J.4012984643248J707e-45
�"t" posiriw:
l .40129846432481707e-45 a
3.4028234663852886E+38
double RAnt<1 m¡11tiw: (IEEE 754.
-t.7976931348623157E+308 a punto flotante)
-4.94065645841246544e-324
�'tt" positiw:
4 .9406564584 t 246544e-324 a
t .7976931348623157E+308

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

. :¡:. Los tipos primitivos de Java tienen algunas


características importantes que se resumen a
continuación:

20
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Tipo Booleano. El tipo boolean no es un valor numérico. Solo tiene dos


valores:
 true
 false
El resultado de la expresión lógica que aparece como condición en un
bucle o en una bifurcación debe ser boolean. Se utiliza para representar
los valores lógicos verdadero y falso.

Caracteres
Char
Los valores de tipo carácter sirven para almacenar símbolos de
escritura. Los valores de tipo carácter representan un carácter Unicode
(que incluye el código ASCII), y ocupan 16 bits por carácter. Comprende
los caracteres de prácticamente todos los idiomas. Se escriben siempre
entre comillas simples, por ejemplo 'a', 'A', '0', '9', ‘b’, ‘7’, ‘$’. En Java
un carácter se puede expresar por su código de la tabla Unicode en octal
o en hexadecimal.
También hay una serie de caracteres especiales que van precedidos por
el símbolo \, estos caracteres que tienen una representación especial se
indican en la siguiente tabla.

21
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Ilustración 4. Caracteres especiales en Java

ca�cter significado

\'t Tabulador
\a Nueva linea
\ti' Alimentacl6n de p,íi.gina
\ir Retomo de carro
significado
\" Dobles comillas
v Comillas simples
\1t11dddd Las euatro letras d, son ea realidad números ea he:iradecimal.
Representa el carácter Uniood.ecuyo c6digo es representado
por las dddd

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

Números enteros. Son números enteros que pueden ser positivos o


negativos, con distintos valores. Representan números enteros positivos
y negativos con distintos rangos de valores, máximos y mínimos. Los
tipos enteros de Java son:
 byte
 int
 short
 long

Números reales. Un número real en Java siempre debe tener un punto


decimal o un exponente. Existen dos tipos de números reales en Java:
 float
 double

Indaga sobre . .J.a diferencia entre ellos


{números enteros y números reales)

22
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

. .1.. . Se utiliza la palabra void para indicar la ausencia de un


'I, • '

tipo de variable determinado.

Literales

''
,,
Se denomina literal a la manera en que se
escriben los valores para cada uno de los
tipos primitivos .
,___

 Números enteros. Un número entero en Java se puede escribir


en decimal, octal o en hexadecimal. Cuando se utiliza el sistema
octal es necesario poner el dígito 0 delante del número. Si se
utiliza el sistema hexadecimal se debe poner 0x delante del
número. Por ejemplo, el número decimal 10 se puede escribir 012
en octal y 0xA en hexadecimal. Los números enteros se supone
que pertenecen al tipo int.

 Números reales. Un número real en Java siempre debe tener un


punto decimal o un exponente

 Booleanos. Los valores lógicos solo pueden ser true y false. Se


escriben siempre en minúsculas

23
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

 Caracteres. Los valores de tipo carácter representan un carácter


Unicode. Se escriben siempre entre comillas simples, por ejemplo
'a', 'A', '0', '9'. En Java un carácter se puede expresar por su
código de la tabla Unicode en octal o en hexadecimal. Los
caracteres que tienen una representación especial se indican en la
siguiente tabla

 Textos. Un texto en Java pertenece a la clase:


String

Y se expresa como el texto entre comillas dobles. Un texto


siempre debe aparecer en una sola línea. Para dividir un texto en
varias líneas se debe utilizar el operador + para concatenar textos.
Un texto puede estar vacío o contener uno o más caracteres. Por
ejemplo, “Primer Programa” es un texto de 15 caracteres,
mientras que “” es un texto vacío y tiene 0 caracteres. El texto “a”
es diferente del carácter 'a' de tipo char. (Ladrón de Guevara, J.,
2011).

2.2.3 Cómo se definen e inicializan las variables


e Antes de poder utilizar una variable, ésta se
debe declarar. Lo cual se debe hacer de esta
forma:
tipo nombrevariable;

24
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Donde tipo es el tipo de datos que almacenará la variable (texto,


números enteros,...) y nombrevariable es el nombre con el que se
conocerá la variable. (Sanchez, J., 2004).

Pensemos en los siguientes ejemplo,s:

Primer ejemplo:

int dias;
boolean decision;

También se puede hacer que la variable tome un valor inicial al declarar:


int dias=365;

Y también se puede declarar más de una variable a la vez:


int dias=365, anio=23, semanas;

Al declarar una variable se puede incluso utilizar una expresión:


int a=13, b=18;
int c=a+b;

Veamos con detenimiento otro ejemplo:

Una variable de tipo número entero, con nombre mesNacimiento puede


almacenar valores positivos y negativos, lo que no tiene sentido cuando
se trata de un mes del año. El rango válido para esta variable sería de 1
a 12.

25
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Para declarar una variable en Java se indica el tipo y su nombre, una


vez declarada una variable, se puede utilizar en cualquier parte del
programa referenciándola por su nombre.

int mesNacimiento;

En este ejemplo se indica que la variable es de tipo entero (int) y su


nombre es mesNacimiento.

Para almacenar un valor en una variable se utiliza el operador de


asignación y a continuación se indica el valor, por ejemplo para junio 6.

mesNacimiento = 6;

A partir de este momento la variable mesNacimiento almacena el valor 6


y cualquier referencia a ella utiliza este valor.

Por ejemplo, si se imprime el valor de la variable por la pantalla,


muestra el valor 6.

System.out.print(mesNacimiento);

Java permite declarar e inicializar una variable en una sola sentencia.

int diaNacimiento = 20;


int mesNacimiento = 6;

26
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

2.2.4 Visibilidad y vida de las variables

Visibilidad, ámbito o scope, estas tres palabras sinónimas y hacen


referencia a la duración de una variable.

'' Se entiende por visibilidad, ámbito o scope de una


variable, la parte de la aplicación donde dicha variable
es accesible y por lo tanto puede ser utilizada en
cualquier expresión. {García de Jalón., J . ., 2000).
,,

En Java todas las variables deben estar incluidas en una clase. En


general las variables declaradas dentro de unas llaves {}, es decir
dentro de un bloque, son visibles y existen dentro de estas llaves.

Por ejemplo las variables declaradas al pnnctpro de una


función existen mientras se ejecute la función; las
variables declaradas dentro de un bloque it no serán
válidas al finalizar las sentencias correspondientes a dicho
[ y las variables miembro de una clase {es decir declaradas
entre las llaves {} de la clase pero fuera de cualquier
método) son válidas mientras existe el objeto de la clase.

........ Las variables, miembro de una clase declaradas como, public


son accesibles a través de una referencia a un objeto de
dicha clase utilizando el operador punto (.). Las variables
miembro declaradas como private no son accesibles
directamente desde otras clases.

27
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Las funciones miembro de una clase tienen acceso directo a todas las
variables miembro de la clase sin necesidad de anteponer el nombre de
un objeto de la clase. Sin embargo las funciones miembro de una clase
B derivada de otra A, tienen acceso a todas las variables miembro de A
declaradas como public o protected, pero no a las declaradas como
private. Una clase derivada sólo puede acceder directamente a las
variables y funciones miembro de su clase base declaradas como public
o protected.

-i:- Otra característica del lenguaje es que es posible declarar una


variable dentro de un bloque con el mismo nombre que una
variable miembro, pero no con el nombre de otra variable
local. La variable declarada dentro del bloque oculta a la
variable miembro en ese bloque. Para acceder a la variable
miembro oculta será preciso utilizar el operador ttü�- (García
de Jalón, J., 2000).

Pensemos en el siguiente ejemplo:

{
int x=12;
}
System.out.println(x); //Error

Java dará error, porque la variable se usa fuera del bloque en el que se
creó. Eso no es posible, porque una variable tiene como ámbito el
bloque de código o sentencias en el que fue creada (salvo que sea una
propiedad de un objeto).

28
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

2.2.5. Casos especiales: Clases BigInteger y BigDecimal

• �

'- aS
1
u e....
Java es un lenguaje extensible que nos permite crear números
arbitrariamente grandes, si lo deseamos. De hecho, el paquete
java.math cuenta con las clases explícitamente para los cálculos
matemáticos de precisión arbitraria, que no pueden llevarse a cabo
con los tipos primitivos:
Biglntegery BigDecimal

La forma de operar con objetos de estas clases difiere de las


operaciones con variables primitivas. En este caso hay que realizar las
operaciones utilizando métodos propios de estas clases (add() para la
suma, subtract() para la resta, divide() para la división, etc.). Se puede
consultar el package java.math donde aparecen ambas clases con todos
sus métodos. (Deitel, P. y Deitel, M., 2008).


......� Los objetos de tipo Bigl111teger son capaces de almacenar
cualquier número entero sin perder información. Esto
significa que es posible trabajar con enteros de cualquier
número de cifras sin perder información durante las
operaciones. Análogamente los objetos de tipo BigDecimal
permiten trabajar con el número de decimales deseado.
(García de Jalón, J., 2000).

Ahora, es momento de realizar la actividad complementaria que te


permitirá reforzar el aprendizaje adquirido hasta el momento para

29
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

posteriormente realizar la actividad de aprendizaje 2.1., correspondiente


a este tema.

fC Acti idad Com

J � Actividad de A rendiza·e 2.1

2.3 Operadores

2.3.1 Definición

• ,
e aS
u e ..1
.. Los datos se manipulan realizando operaciones con ellos, estos
se suman, se restan, se multiplican, se dividen, etc. y a veces se
realizan operaciones más complejas utilizando determinados
operadores para realizar dichas operaciones o cálculos. Hay que
tener en cuenta que el resultado de estos operadores varía
notablemente si usamos enteros o si usamos números de punto
flotante. (Sanchez, J., 2004).

Los datos se manipulan realizando operaciones con ellos, estos se


suman, se restan, se multiplican, se dividen, etc. y a veces se realizan
operaciones más complejas utilizando determinados operadores para
realizar dichas operaciones o cálculos. Hay que tener en cuenta que el
resultado de estos operadores varía notablemente si usamos enteros o
si usamos números de punto flotante. (Sánchez, J., 2004).

30
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Pensemos en el siguiente ejemplo:

double resultado1, d1=14, d2=5;


int resultado2, i1=14, i2=5;
resultado1= d1 / d2;
resultado2= i1 / i2;

En este ejemplo resultado1 valdrá 2.8 mientras que resultado2 valdrá 2.

Número,s enteros. Al realizar una operación entre dos


números enteros, el resultado siempre es un númern entero .
Con los números enteros se pueden realizar operaciones
unarias, aditivas)' multiplicativas, de incremento y decremento)'
relacionales)' de igualdad y de asignación .

Tabla 1. Tipo de operaciones con números enteros

Tipo de operación Acción

Una operación unaria Permite poner un signo delante: +5, -2.

Una operación aditiva Se refiere a la suma y la resta: 2+3, 5-2.


Una operación multiplicativa Multiplica o divide dos valores: 5*2, 5/2.
El operador % calcula el resto de la
división entera 5%2.

Un incremento o decremento Aumenta o decrementa en uno el valor de


una variable: ++numero, numero++, --

31
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

numero, numero--. Si el operador va


antes de la variable, primero se realiza la
operación y se modifica el valor de la
variable. Si el operador va después de la
variable, su valor se modifica al final.

Un operador relacional Permiten comparar dos valores: >, <, >=


y <=. El resultado de la comparación es
un valor booleano que indica si la relación
es verdadera o falsa.

Un operador de igualdad Compara si dos valores son iguales o no.


El operador == devuelve verdadero si los
dos valores son iguales, el operador !=
devuelve verdadero si son diferentes. El
resultado de la comparación es un valor
booleano que indica si la igualdad o
desigualdad es verdadera o falsa.
Un operador de asignación Permite asignar un valor o el resultado de
una operación a una variable: =, +=, -=,
*=, /=, %=. (Ladrón de Guevara, J.,
2011).

Fuente: UDEMEX 2019 con información de Sánchez, J., 2004


......,_ Números reales. Con los números reales se aplican los
mismos operadores que con los números enteros. Si se
realizan operaciones unarias, aditivas o multiplicativas, el
resultado es un número real. También se pueden aplicar
los operadores relacionales paira comparar dos números
reales.

32
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

2.3.2. Tipos de operadores

Operadores aritméticos

Son operadores binarios (ya que funcionan con dos operandos) que
realizan las operaciones aritméticas habituales: suma (+), resta (-),
multiplicación (*), división (/) y (%) es el operador residuo o resto
de la división (conocido como módulo en algunos lenguajes).

Ilustración 5. Operadores aritméticos

Suma + f+7 f + 7

Resta p-c p e

Mul cip[icación * bm b * m

Dívlsíén I xly o:y o x+y X I y

Residuo %, rmods r % s

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

El operador + se utiliza para sumar dos números y también permite


concatenar o unir dos cadenas de caracteres. Este operador está
“sobrecargado” porque opera con números y con cadenas de caracteres.

33
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

..�_. Notas:
• Las expresiones aritméticas en Java deben escribirse en
formato de línea recta .
• Si una expresión contiene paréntesis anidados, el conjunto
de paréntesis más interno se evalúa primern.
• Java aplica los operadores en las expresiones aritméticas en
una secuencia precisa, la cual se determina mediante las
reglas de precedencia de los operadores.
• Cuando decimos que los operadores se aplican de izquierda a
derecha)' nos referimos a su asociatividad. Algunos
operadores se asocian de derecha a izquierda.
• Los paréntesis redundantes en una expresión pueden hacer
que esta sea más clara.

Operadores unarios

. ;

e ª aS
ue 1 Java proporciona dos operadores unarios para sumar uno,
• •• • restar uno, al valor de una variable numérica. Estos
º
operadores son el operador de incremento unario, ++, y el
operador de decremento unario, --. Un programa puede
incrementar en uno el valor de una variable llamada c,
utilizando el operador de incremento, ++, en lugar de usar la
expresión c = c + 1 o c += 1.

"i.A. . A
\ 1 ,
un operador de incremento o decremento que se coloca
antes de una variable se le llama operador de pre incremento o
pre decremento)' respectivamente. A un operador de
incremento o decremento que se coloca después de una
variable se le llama operador de pos incremento o pos
decremento, respectivamente.

34
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

'' Pre incrementar (o predecrementar) la variable: Es

,,
el proceso de utilizar el operador de pre incremento
{o pos decremento) paira sumar (o restar) uno a una
variable. (Deitel, P. y Deitel, M., 2008) .
..._

Al preincrementar (o predecrementar) una variable, ésta se incrementa


(o decrementa) en uno, y después el nuevo valor de la variable se utiliza
en la expresión en la que aparece. (Deitel, P. y Deitel, M., 2008).

'' Pos incrementar (o postdecrementar) la variable.


Es el proceso de utilizar el operador de pre incremento

�-------------''
{o pos decremento) para sumar (o restar) uno a una
variable. (Deitel, P. y Deite], M.1 2008).

Al postincrementar (o postdecrementar) una variable, el valor actual de


la variable se utiliza en la expresión en la que aparece y después el
valor de la variable se incrementa (o decrementa) en uno. (Deitel, P. y
Deitel, M., 2008).

35
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Ilustración 6. Operadores unarios

++ Preincremenco ++3 Incremenur a en 1, desp�1 utiliur el nuevo valor de a en la


expresión en que esta variable resik.
++ Postincrementc 3++ Usar el valor :11erual de a en la expresión en la que esca varia-
ble reside, despuh incremencu a en l.
Predeeremen to ·-b Dec�menw ben 1, después utilizar el nuevo valor de ben
la ecpresión en que esta variable reside.
Pestdecrememo b-- Usar el valor actual deben la cxpl'C$ión en la que esu nri:a·
ble reside, después decrementar ben 1.
Los operadores de incremento y decremento

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

Operadores de asignación compuestos

. ,
l ª aS 1
U e. ...• Java cuenta con varios operadores de asignación
compuestos para abreviar las expresiones de asfgnaelón.
Cualquier instrucción de la forma:
variable = variable operador expresión;

en donde operador es uno de los operadores binarios +, -, *, / o % (o


alguno de los otros que veremos más adelante), puede escribirse de la
siguiente forma:

variable operador= expresión;

36
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Pensemos en el siguiente ejemplo:

Puede abreviar la instrucción c = c + 3; mediante el operador de


asignación compuesto de suma, +=, de la siguiente manera:
c += 3;
El operador += suma el valor de la expresión que está a la derecha del
operador, al valor de la variable que está a la izquierda del operador, y
almacena el resultado en la variable que está a la izquierda del
operador. Por lo tanto, la expresión de asignación c += 3 suma 3 a c.
(Deitel, P. y Deitel, M., 2008).
La siguiente tabla muestra ejemplos de uso de los operadores de
asignación aritméticos compuestos.

Ilustración 7. Operadores de asignación aritméticos

Aslgna

Supone que: i nt e .. 3 , d • '5, e .. 4 , f • 6, g .. 12 ;

+- e+- 7 e - e+ 7 10 a e
d -·- 4 d - d - 4 lad
, ___ e , _._ s. e - e ,,_.
5 20 a e
!- f !- 3 f-f/3 2a f
%- g %- 9 g - g % 9 3 ag
Operadores de asignación aritméticos.

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

37
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Operadores de igualdad y relacionales

Una condición es una expresión que puede ser


verdadera (true) o falsa (false).
------------------- .,.,
Esta sección presenta la instrucción if de Java, la cual permite que un
programa tome una decisión, con base en el valor de una condición. Si
la condición en una instrucción if es verdadera, el cuerpo de la
instrucción if se ejecuta. Si la condición es falsa, el cuerpo no se
ejecuta. Las condiciones en las instrucciones if pueden formarse
utilizando los operadores de igualdad (== y !=) y los operadores
relacionales (>, <, >= y <=). Ambos operadores de igualdad tienen
el mismo nivel de precedencia, que es menor que la precedencia de los
operadores relacionales. Los operadores de igualdad se asocian de
izquierda a derecha; y los relacionales tienen el mismo nivel de
precedencia y también se asocian de izquierda a derecha. (Deitel, P. y
Deitel, M., 2008).

Ilustración 8. Operadores de igualdad y relacionales

Operador de Ejemp,lo
•r.ualdad o dev>ndici6n Sie,nilicadodela
rdacional de Java m �va �<·rid•<ioo aiJava
0J!<r"4i,,ff tÍ( �,dJ,t,/.

X - 'Y x e, lgml a y
I• x ,. r X no es i¡ual, Y
OJ!<r�m rr��iilllf<lk�

> > " > y


X e Y x ei menor que y
,.. • - r X CI mli)W O iguaal �U< y
< e, menor o ig,.d qi,c y
Operado res de 1gwlclad y relacionales.

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

38
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Operadores lógicos

. ;

' ª aS
�ue.1
Java cuenta con los operadores lógicos para formar condiciones
más. complejas, al combinar las condiciones simples. Los operadores
lógicos son:
&& (ANO condicional), 11 (OR condicional), & (ANO lógico booleano],
1 (OR inclusivo lógico booleano), "' (OR exclusivo lógico booleano) y !

(N01 lógico). (Deitel, P. y Oeitel, M., 2008).

El Operador AND (&&) condicional y el Operador OR condicional


(||)

Las siguientes tablas se muestra las cuatro combinaciones posibles de


valores false y true para expresión1 y expresión2 para los operadores
AND (&&) condicional y OR condicional (||). A dichas tablas se les
conoce como tablas de verdad.

Ilustración 9. Tabla de verdad del operador &&

fa 1 se, false false

fa 1 se, true, false


tru,e false false

true true true

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

39
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Ilustración 10. Tabla de verdad del operador OR

false false fa11se

fal se true +rue

true false
true t rue tiruie

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

Java evalúa todas las expresiones que incluyen operadores


relacionales, de igualdad o lógicos como true o false. El operador
&& tiene mayor precedencia que el operador 11- Ambos operadores
se asocian de izquierda a derecha. (Qfilt.gj1 P. y� M.1 2008) .

Evaluación en corto circuito de condiciones complejas


l
au e..1.•
Las partes de una expresron que contienen los
operadores && o 11 se evalúan sólo hasta que s.e
sabe si la condición es verdadera o falsa. Por ende,
la evaluación de la expresión:

( genero == FEMENINO ) && ( edad >= 65 )


se detiene de inmediato si género no es igual a FEMENINO (es decir, en
este punto es evidente que toda la expresión es false) y continúa si
género es igual a FEMENINO (es decir, toda la expresión podría ser aún

40
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

true si la condición edad >= 65 es true). Esta característica de las


expresiones AND y OR condicional se conoce como evaluación en
corto circuito. (Deitel, P. y Deitel, M., 2008).

Operadores AND lógico booleano (&) y OR inclusivo lógico


booleano ( | )

.."'.&"... '
Funcionan en forma idéntica a los operadores && (ANO
condicional) y 11 (OR condicional), con una excepción: los
operadores lógicos booleanos siempre evalúan ambos
operandos (es decir, no realizan una evaluación en corto
circuito). (Deitel, P. y Deitel, M . r 2008).

OR exclusivo lógico booleano (^),

·&· una condición compleja


' 1 I

que contiene el operador OR


exclusivo lógico booleano (A) es true si y sólo si uno de
sus operandos es true y el otro es false. Si ambos
operandos son true o si ambos son false, toda la
condición es false.

A continuación se muestra la tabla de verdad para el operador OR


exclusivo lógico booleano (^). También se garantiza que este operador
evaluará ambos operandos. (Deitel, P. y Deitel, M., 2008).

41
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Ilustración 11. Tabla de verdad para el operador OR

false false fa TI se

false true true

true false true


true true fa TI se

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

Operador lógico de negación (!)

• ;

l
�1
u e ...•
El operador ! (NOT lógico, también conocido como, negación lógica o
complemento lógico) "invierte" el significado de un a condición. A
diferencia de los operadores lógicos&&, 11, &, 1 y", que son operadores
binarios que combinan dos condiciones, el operador lógico de negación
es un operador unario que sólo tiene una condición como operando.
Este operador se coloca antes de una condición para elegir una ruta de
ejecución si la condición original (sin el operador lógico de negación) es
false.

42
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Ilustración 12. Tabla de verdad del operador !

false true

true false
Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.
Pearson Educación, México. ISBN: 978

Operador condicional (?:)

·'A- Este operador (conocido como if de una línea) permite ejecutar


una instrucción u otra según el valor de la expresión. Su sintaxis


es:

expresionlogica?valorSiVerdadero:valorSifalso;

Por ejemplo, la instrucción:

System.out.println( calificacionEstudiante >= 60 ? "Aprobado”: "Reprobado”);

Imprime el valor del argumento de println, que es una expresión


condicional. La expresión condicional en esta instrucción produce como
resultado la cadena "Aprobado" si la expresión booleana
calificacionEstudiante >= 60 es verdadera, o produce como resultado la
cadena "Reprobado" si la expresión booleana es falsa.

43
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

La precedencia del operador condicional es baja, por lo que toda la


expresión condicional se coloca normalmente entre paréntesis. (García
de Jalón, J., 2000).

Operador instanceof

. ......... El operador instanceof permite saber si un objeto


pertenece a una determinada clase o no. Es un operador
binario cuya forma general es: objectName instanceof
Class.Name y que devuelve true o false según el objeto
pertenezca o no a la clase. (García de Jalón, J.1 2000).

Operadores que actúan a nivel de bits.

. ,.
e 3aS
�ue.1
Java díspcne también de un conjunto de operadores que actúan a
nivel de bits. Las operaciones de bits se utilizan con frecuencia para
definir señales o flagst esto es, variables de tipo entero en las que
cada uno de .sus bits indican si una opción está activada o no.

La Tabla muestra los operadores de Java que actúan a nivel de bits.

44
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Ilustración 13. Operadores que actúan a nivel de bits

Otierador 1 Utiliza a.Úlll. 1 Resultado


;:,,;:,,
1
opJ » op2 Desplata los bi.t.s de opl al a derecha una dis*1cia op2
opJ « op2
1

<< Desplaza los bits de opl alaizauierda una dis�a o,:,2


>>> 01p 1 >>> op2 Desplaza los bits de cr131 al a derecha una distancia op2 (p osiltiva)
& 1
1
C1fl J & op2 Operador ANO a nivel die bits
1 O'P l 1 0'02 Operador OR a nivel de bits
I\
op 1 "'op2 Operador XOR a nivel die bits
- -10:p2 Operador complemento

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

En binario, las potencias de dos se representan con un único bit


activado.

Pensemos en los siguientes ejemplos:

Los números (1, 2, 4, 8, 16, 32, 64, 128) se representan


respectivamente de modo binario en la forma (00000001, 00000010,
00000100, 00001000, 00010000, 00100000, 01000000, 10000000),
utilizando sólo 8 bits. La suma de estos números permite construir una
variable flags con los bits activados que se deseen.
Por ejemplo, para construir una variable flags que sea 00010010
bastaría hacer flags=2+16. Para saber si el segundo bit por la derecha
está o no activado bastaría utilizar la sentencia,

if (flags & 2 == 2) {...}

45
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Ilustración 14. Operadores de asignación a nivel de bits

o a-ador E uivalm.tea
&.= 1
op l = opl & op2
1= 1

l'I;;;;.
1 o
<<= 1
o
>>= 1

),),),;;;;;;.
1
cp 1 > > >;; ; ;. cp 2 op 1 ; ; ; . opl >>> o¡p2

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

Orden de precedencia de los operadores

La siguiente tabla muestra el orden de precedencia de los operadores.


Los operadores se muestran en orden decreciente de precedencia, de
arriba hacia abajo. Indica qué operador se aplica primero en una
expresión. En nuestras tablas de precedencia, indicamos el operador de
conversión de tipos con la notación (tipo) para indicar que puede usarse
cualquier nombre de tipo para formar un operador de conversión de
tipo.

46
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Ilustración 15. Procedencia de los operadores

u cario de pottlncrermnto de der.eclu. a iiquicrda


u uarto de postdc<:r-cmc-nto
unuio de ¡preincrcrru:n10
unuio de ¡predc-eremeMo
ui:uriode tuma
unnio de nna
unario de n�idón 16gle2
unarto de complemento,¡ nlvd de blt11
u nulo de COl'lveni6n
rnultlplleacléa
/ dMsión

"
+
re,riduo

turna, o coru:uc:naeL6-m. ele a.clec u d.·e i2qulerda a dmdia


fC:JQI

<< dcspbitamlcmo a b izq�lcrd:a,


>> dcspbizamdmto :i. b derecha con �no
>>> dc"Phriamiento :a. b derecha sin signo
< menor que
<- menor o igual que
> mayor que
mayor o lg1u I que
1nstanceof eomparacién de dpos

Tabla de p recedenoa de loo operadcres. ( P3 rte. 1 de 1).

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

47
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Ilustración 16. Procedencia de los operadores.(continuación)

,_ esi�llll .¡
no es igu.¡I a
de dzqulenia .¡ dt-rech'll

.AND a níwl J� bhs


AND 16glco booleane
Á
OR ec.d11ytnie a nivd de biu
OR ec.d11ytnte lógico book�no
OR .llllduyente .¡ niYd .de bia de iz,quienh ¡ .derech.i.
OR i:mduy.!·n ce lóg[co beoleaae
AND wndlclonal
11 OR oondicioml
7: condiciona 1 de derecb i i.iquierd;1J
ulgp:i,Qión
+- u�n'lld6n, suma
ui¡Hd6n, rma
,_ uignad6n, rnuldpliead6n
uignllld6n. dlvhl6n

"',._"

t�[gn111el6n, residuo
ui¡nadón. AND a nivel de biu
ulgn:11dón, ORe�ch1ye111e- a nivd de bits
1- ulgn!111:ol6n, ORincfoyente .¡ nivel de biti,
uí¡n:aid6n, dnplu.unien t0 a b uquierd:a. t nivel de lbin
uign;¡¡dón, dnplu.1mienco ;¡, 11 demfa a nivel de biw oon 1'igno
uign!lld6n, dupla.umlmto.Ji ll derecha¡ nlwl de bit:i. sln slg!to

Tabla de precedencia de los operadores. (Parte 1 de 2).

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

48
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

2.4. Estructuras de programación

2.4.1Sentencias o expresiones

"'Í" Una expresión permite realizar operaciones entre


valores utilizando distintos operadores. Las
expresiones son útiles para representar las fórmulas
matemáticas que se utilizan para realizar cálculos.
(Ladrón de Guevara, J . ., 2011).

En Java se pueden definir expresiones tan complejas como sea


necesario.

Pensemos en los siguientes ejemplos:

Para convertir una temperatura de grados Fahrenheit a Centígrados se


utiliza la fórmula: C = ((F – 32) * 5) / 9
En este ejemplo C representa la temperatura en grados centígrados y F
en grados Fahrenheit. La fórmula en Java, utilizando las variables
centigrados y fahrenheit de tipo double.

centigrados = ((fahrenheit – 32.0) * 5.0)) / 9.0;

Toda la expresión se evalúa a un valor. El orden de los cálculos depende


del orden de prioridad de los operadores: primero los operadores
unarios, después los multiplicativos, de izquierda a derecha, después los
operadores aditivos, de izquierda a derecha, después los operadores de

49
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

relación y por último los operadores de asignación. (Ladrón de Guevara,


J., 2011).

Por ejemplo, la expresión x = -3 + 2 * 4 – 12 / 6 + 5 se calcula en el


orden siguiente:
Primero se aplica el operador unario (-) a 3 y se obtiene -3. A
continuación se evalúan los operadores multiplicativos de izquierda a
derecha. Se calcula el producto de 2 * 4 y se obtiene 8, después se
divide 12 / 6 y se obtiene 2.
Al finalizar estas operaciones la expresión queda x = -3 + 8 – 2 + 5. Por
último, se evalúan los operadores aditivos de izquierda a derecha y se
obtiene 8.
Cuando se desea modificar el orden de prioridad de los operadores es
necesario utilizar paréntesis para indicar el orden de evaluación. Por
ejemplo, al calcular el valor de y = -3 + 2 * (14 – 2) / 6 + 5 se obtiene
6.

Expresiones aritmético-lógicas

• Una
·A· expresión aritmético-lógica devuelve un valor lógico
verdadero o falso. En este tipo de expresiones se utilizan
operadores aritméticos, operadores relacionales y de igualdad.
(Ladrón de Guevara, J., 2011).

Pensemos en los siguientes ejemplos:

50
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Una expresión lógica puede ser:

(10 – 2) > (5 – 3)
En este ejemplo la expresión aritmético-lógica es verdadera porque el
lado derecho de la expresión es mayor que el lado izquierdo.
En una expresión aritmético-lógica se pueden combinar varias
expresiones con operadores lógicos. La precedencia de los operadores
lógicos es menor que la de los operadores relacionales, por lo que
primero se evalúan las desigualdades y después los operadores lógicos.

'"A- El orden de prioridad de los operadores lógicos es el


' • ,I

siguiente: primero la negación, después el Y lógico y


por último el O lógico. La prioridad de los operadores
de asignación es la menor de todas.

Pensemos en el siguiente ejemplo:

La expresión 3 + 5 < 5 * 2 || 3 > 8 && 7 > 6 – 2 se evalúa en el orden


siguiente:

Primero se evalúan las expresiones aritméticas y se obtiene la expresión


lógica 8 < 10 || 3 > 8 && 7 > 4. A continuación se evalúan los
operadores relacionales y se obtiene true || false && true. Ahora se
evalúa el operador Y lógico con los operandos false && true y se obtiene
false. Por último, se evalúa el operador O lógico con los operandos true

51
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

|| false y se obtiene true, el valor final de la expresión. Los operadores


lógicos && y || se evalúan por cortocircuito. Esto significa que al evaluar
a && b, si a es falso, no es necesario evaluar b porque la expresión es
falsa. De forma similar, al evaluar a || b, si a es verdadero, no es
necesario evaluar b porque la expresión es verdadera.

Conversión de tipos

Muchas veces es necesario realizar conversiones de tipos cuando se


evalúa una expresión aritmética. Por ejemplo, si después de realizar el
cálculo de conversión de grados Fahrenheit a Centígrados se quiere
almacenar el resultado en la variable de tipo entero temperatura, es
necesario hacer una conversión de tipos. La fórmula en Java, utilizando
las variables centigrados y fahrenheit de tipo double. (Ladrón de
Guevara, J., 2011).

centigrados = ((fahrenheit – 32.0) * 5.0)) / 9.0;

Antes de asignar el valor resultante a la variable temperatura, que


almacena un valor entero, es necesario convertir el valor de tipo double
de la variable centigrados a int.

int temperatura = (int) centigrados;

52
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA


e
a 1
ue ....
El cuerpo de un programa se compone de un conjunte de
sentencias que especifican las acciones que se realizan durante su
ejecución. Dentro de cualquier programa, se escrilben sentencias
que definen la secuencia de acciones a ejecutar. Estas sentencias
incluyen acciones de cálculo, entrada y salida de datos,
almacenamiento de datos, etc. Las sentencias se ejecutan una a una
en el orden en el que han sido escritas.

2.4.2 Estructuras de control

'' Se denomina flujo de un programa al orden de


ejecución de las sentencias que forman parte del

�--------------''
cuerpo de un programa. (Ladrón de Guevara, J.,, 20111).

El modo de ejecución de un programa en Java en ausencia de elementos


de control de flujo es secuencial, es decir una instrucción se ejecuta
detrás de otra y sólo se ejecuta una vez. Esto nos permite hace
programas muy limitados; para evitarlo se introducen estructuras de
control. (Otero, A., 2003).

53
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA


(. &

Las. estructuras. de contrcl son u na característica básica de


los lenguajes que se utiliza para modificar el flujo de un
programa. Hay casos en los que el flujo de un programa
debe ejecutar determinadas instrucciones solo cuando se
cumple una condición. En otras ocasiones, debe repetir un
conjunto de sentencias un número determinado de veces"

• •
........ Las estructuras de control permiten condicionar el
flujo de ejecución dependiendo del estado de las
variables de un programa .

Las estructuras de control básicas se pueden clasificar en estructuras de


selección, de repetición y de salto. (Ladrón de Guevara, J., 2011).

Figura 6. Estructuras de control básicas

Estructuras Selección. Permiten decidir si se ejecuta un bloque de


de control sentencias o no.
básicas

Repetición. Permiten ejecutar un bloque de


sentencias muchas veces.

Salto. Permiten dar un salto y continuar la ejecución


de un programa en un punto distinto de la siguiente
sentencia en el orden natural de ejecución.

Fuente: UDEMEX 2019 con información de: Ladrón de Guevara, J., 2011

54
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Las estructuras de control se pueden combinar sin ningún tipo de


limitación. Cualquier nuevo bloque de sentencias puede incluir
estructuras de control a continuación de otras.

..�... Cuando se incluyen varias, estructuras seguidas,
unas de otras, se dice que son estructuras de
control apiladas.

Por otra parte, dentro de un bloque de una estructura de control se


puede incluir otra estructura de control y dentro de este nuevo bloque
se puede incluir otra estructura de control y así sucesivamente.

Cuando una estructura contiene otra estructura, se dice que son


estructuras de control anidadas.. Es importante destacar que no
existe limitación en cuanto al número de estructuras de control
apiladas o anidadas que se pueden utilizar en un programa Java. La
única restricción a tener en cuenta es la claridad y la legibilidad del
programa. (Ladrón de Guevara, J., 2011).

Nota: El término “estructuras de control” proviene del campo de las


ciencias computacionales. La Especificación del lenguaje Java se refiere
a las “estructuras de control” como “instrucciones de control”.

Estructuras de selección

Las estructuras de selección permiten modificar el flujo de un programa.


La decisión de ejecutar un bloque de sentencias queda condicionada por
el valor de una expresión lógica definida utilizando variables del
programa.

55
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

. ;

e ª aS
U e • ••1J• ava tiene
· tres tipos
· de .instrucciones
. . ' La .mstruccion
d e se 1 eccron, . ' if
I
realiza (selecciona) una acción si la condición es verdadera, o evita la
acción si la condición es falsa. La instrucción if... else realiza una acción
si la condición es verdadera, o realiza una acción distinta si la
condición es falsa. La instrucción switch realiza una de entre varias
acciones distintas, dependiendo del valor de una expresión.

Figura 7.Instrucciones de selección

La instrucción if

Es una instrucción de selección simple, ya que selecciona o


ignora una sola acción. (Deitel, P. y Deitel, M., 2008).

La instrucción if...else

Se conoce como instrucción de selección doble, ya que


selecciona entre dos acciones distintas (o grupos de
acciones). (Deitel, P. y Deitel, M., 2008).

La instrucción switch

Es una estructura de selección múltiple, ya que selecciona


entre diversas acciones (o grupos de acciones). (Deitel, P. y
Deitel, M., 2008).

Fuente: UDEMEX 2019 con información de: Deitel, P y Deitel, M., 2008

56
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Estructura if

• ,
e aS
ue 1
Los programas utilizan instrucciones de selección para elegir
...• entre los cursos alternativos de acción.

"''A� La estructura if se denomina estructura de selección


i

única porque ejecuta un bloque de sentencias solo


cuando se cumple la condición del if. Si la condición es
verdadera se ejecuta el bloque de sentencias. Si la
condición es falsa, el flujo del programa continúa en la
sentencia inmediatamente posterior al if. La instrucción
if es una instrucción de control de una sola entrada/una
sola salida.

Una sentencia if tiene la siguiente sintaxis:


if (condicion) {
bloque-de-sentencias
}
La condición es una expresión que evalúa un valor lógico, por lo que el
resultado solo puede ser true o false. La condición siempre se escribe
entre paréntesis. La selección se produce sobre el bloque de sentencias
delimitado por llaves. Si el bloque de sentencias solo tiene una
sentencia, entonces se puede escribir sin las llaves, como se muestra a
continuación.

if (condicion)
sentencia;

Cuando el flujo de un programa llega a una estructura if, se evalúa la


condición y el bloque de instrucciones se ejecuta si el valor de la

57
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

condición es true. Si la condición es false, entonces se ejecuta la


sentencia inmediatamente posterior al if.

Pensemo,s en el siguiente ejemplo:

if ( calificacionEstudiante >= 60 )
System.out.println( "Aprobado" );

Ilustremos el ejemplo anterior con un diagrama de Actividad:

Ilustración 17. Ejemplo de la estructura de selección "if"

Diagrama de a(:tiYidad en UML de la instN<:ción 1 f de selección Sir11'Ple.

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

Los diagramas de actividad forman parte de UML. Un diagrama de


actividad modela el flujo de trabajo (también conocido como la
actividad) de una parte de un sistema de software.

58
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

tos diagramas de actividad se componen de slmbolos de

..' -1 , propésttc especial, como los símbolos de estados de accíón,


rombos y pequeños círculos.. Estos símbolos se conectan
mediante flechas de transición, las cuales representan el flujo
de la actividad.
Los estados de acción representan las acciones a realizar.
Cada estado, de acción contiene una expresión de acción, la
cual especifica una acción específlca a realizar.

Figura 8. Estados de acción

Símbolo Significado
Las flechas Represe-ntan las transiciones, que indican
el orden en el que ocurren las acciones
representadas por los estados de acción,
(Deitel, P. y Deitel, M. ,2008).

El círculo relleno que se encuentra en Represe-nta el estado inicial de la


la parte superior de un diagrama de actividad: el comienzo del flujo de
actividad trabajo antes de que el programa realice
las acciones modeladas. (Deitel, P. y
Deitel, M. ,2008).

El árculo sólido rodeado por una Representa el estado final: el término del
ciramferencia, que aparece en la flujo de trabajo después de que el
parte inferio,rdel diagrama. programa realiza sus acciones. (Deitel, P.
y Deitel, M. ,2.00S).

Los rectángulos con ras esquinas Comentarios que describen el propósito


superio,resderechasdohlada.s de los símbolos en el diagrama. (Deitel,
P. y Deitel, M. ,2008).

Fuente: UDEMEX 2019 con información de: Deitel, P y Deitel, M., 2008

59
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Pensemos en el siguiente ejemplo:

Si la calificación de un alumno es 10, entonces se debe mostrar por la


pantalla un mensaje indicando que tiene una Calificación de Excelencia.
La sentencia if considerando que calificación es una variable de tipo int:

if (calificacion == 10) {
System.out.println("Calificación de Exclencia");
}

En este ejemplo el mensaje “Calificación de Excelencia” solo se muestra


cuando el valor de la calificación es igual a 10.

Estructura if else

La estructura if-else se denomina de selección doble porque selecciona


entre dos bloques de sentencias mutuamente excluyentes. La
instrucción if-else de selección doble permite al programador especificar
una acción a realizar cuando la condición es verdadera, y otra distinta
cuando la condición es falsa. En otras palabras, si se cumple la
condición, se ejecuta el bloque de sentencias asociado al if. Si la
condición no se cumple, entonces se ejecuta el bloque de sentencias
asociado al else.

Una sentencia if-else tiene la siguiente sintaxis:

if (condicion) {

60
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

bloque-de-sentencias-if
}
else {
bloque-de-sentencias-else
}

Ilustración 18. Estructura "if else"

lcalifKacioo < (,()1


impcimir �pcbado" ----------<

Diagrama de actividad de UML de la instrucción i f ... el se de seleccién doble.

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

Pensemos en los siguientes ejemplos:

if ( calificacion >= 60 )
System.out.println( "Aprobado" );
else

System.out.println( "Reprobado" );

61
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Al igual que en el if, la condición se debe escribir entre paréntesis. La


selección depende del resultado de evaluar la condición. Si el resultado
es true, se ejecuta el bloque de sentencias del if, en cualquier otro caso
se ejecuta el bloque de instrucciones del else. Después de ejecutar el
bloque de sentencias se ejecuta la sentencia inmediatamente posterior
al if-else.

Veamos otro ejemplo, si se desea mostrar un mensaje por la pantalla


para indicar si un número es par o impar, basta con calcular el resto de
la división del número entre 2 con el operador %. Si el resto es igual a
cero, entonces el número es par, en caso contrario el número es impar.

La sentencia if-else:

if (numero % 2 == 0)
System.out.println("El número es par");
else
System.out.println("El número es impar");
. . - Los bloques de sentencias son mutuamente
-a- exduyentes. Si se cumple la condición se ejecuta un
bloque de sentencias, en caso contrario se ejecuta el
otro bloque de sentencias.. Teniendo en cuenta esto, se
podría escribir una sentencia if-else con la condición
contraria y con los bloques de sentencias
intercambiados.
if (numero % 2 != 0)
System.out.println("El número es impar");
else
System.out.println("El número es par");

62
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Si fuera necesario evaluar más de una condición, entonces se deben


utilizar varias estructuras de selección anidadas.

Por ejemplo, para mostrar la calificación de un alumno, es necesario


evaluar las siguientes condiciones y se puede ver que las condiciones
son excluyentes entre sí.

La sentencia if-else:

int calificacion = 7;
if (calificacion == 10)
System.out.println("Excelente");
else
if (calificacion == 9)
System.out.println("Sobresaliente");
else
if (calificacion >= 7)
System.out.println("Notable");
else
if (calificacion == 6)
System.out.println("Bien");
else
if (calificacion == 5)
System.out.println("Aprobado");
else
System.out.println("No aprobadoo");

63
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Estructura if-else anidadas


l. Un programa puede evaluar varios casos colocando
instrucciones if-else dentro de otras instrucciones if-
else, para crear instrucciones if-else anidadas .


Pensemos en el siguiente ejemplo:

El siguiente seudocódigo representa una instrucción if-else anidada que


imprime A para las calificaciones de exámenes mayores o iguales a 90,
B para las calificaciones en el rango de 80 a 89, C para las calificaciones
en el rango de 70 a 79, D para las calificaciones en el rango de 60 a 69
y F para todas las demás calificaciones:

if ( calificacionEstudiante >= 90 )
System.out.println( "A" );
else
if ( calificacionEstudiante >= 80 )
System.out.println( "B" );
else
if ( calificacionEstudiante >= 70 )
System.out.println( "C" );
else
if ( calificacionEstudiante >= 60 )
System.out.println( "D" );
else
System.out.println( "F" );

64
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Estructra if-else-if

La estructura if-else-if se puede aplicar en los mismos casos en que se


utiliza un if-else anidado. Esta estructura permite escribir de forma
abreviada las condiciones de un if-else anidado.

Una sentencia if-else-if tiene la siguiente sintaxis:

if (condicion-1) {
bloque-de-sentencias-condicion-1
} else if (condicion-2) {
bloque-de-sentencias-condicion-2
} else {
bloque-de-sentencias-else
}

La sentencia if-else-if para el ejemplo de las calificaciones:

int calificacion = 7;
if (calificacion == 10) {
System.out.println("Excelente");
} else if (calificacion == 9) {
System.out.println("Sobresaliente");
} else if (calificacion >= 7) {
System.out.println("Notable");
} else if (calificacion == 6) {
System.out.println("Bien");
} else if (calificacion == 5) {
System.out.println("No aprobado");
} else {

65
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

System.out.println("Reciclado");
}

Estructura switch

Java cuenta con la estructura switch de selección múltiple para


realizar distintas ecciones, con base en los. posibles valores de
una variable o expresión entera. Cada acción se asocia con un
valor de una expresión entera constante {es decir, un valor
constante de tipo byte, short, int o char, pero no long) que la
variable o expresión en la que se basa la instrucción switch
pueda asumir. (Deitel, P. y Deitel, M., 2008).


" "A"' La estructura switch permite seleccionar un bloque de
sentencias entre varios casos. En cierto modo, es parecido a
una estructura de if-else anidados. La diferencia está en que
la selección del bloque de sentencias depende de la
evaluación de una expresión que se compara por igualdad
con cada uno de los casos. La estructura switch consta de una
expresión y una serie de etiquetas case y una opción default.
La sentencia break indica el final de la ejecución del switch.
(Ladrón de Guevara, JI., 2011).

Una sentencia switch tiene la siguiente sintaxis:

switch (expresion) {
case valor-1:
bloque-de-sentencias-1;
break;
case valor-2:
66
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

bloque-de-sentencias-2;
break;
case valor-3:
bloque-de-sentencias-3;
break;
case valor-4:
bloque-de-sentencias-4;
break;
case valor-5:
bloque-de-sentencias-5;
break;
default:
bloque-de-sentencias-default;
break;
}

La expresión debe devolver un valor de tipo entero (int) o carácter


(char) y es obligatorio que la expresión se escriba entre paréntesis. A
continuación de cada case aparece uno o más valores constantes del
mismo tipo que el valor que devuelve la expresión del switch. Para
interrumpir la ejecución de las sentencias del switch se utiliza la
sentencia break que provoca la finalización del switch. El flujo del
programa continúa en la sentencia inmediatamente posterior al switch.

67
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Ilustración 19. Expresión "switch"

brok

case b break
[(1lso)

,:ase¡ break

Diag,ranu de actividad di! UMl dt la instrucción sw1 t ch di sell!cc1ón rnúltip!e con instmccione break,

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

Una vez que se evalúa la expresión del switch, se comprueba si


coincide con el valor del primer case. En caso contrario, se comprueba si
coincide con el valor del segundo case y así sucesivamente. Cuando el
valor de la expresión coincide con el valor de uno de los case, se
empieza a ejecutar el bloque de instrucciones correspondiente al case
hasta encontrar una sentencia break o al llegar al final de la estructura
switch donde se cierra la llave. Si no se encuentra un case que coincida
con el valor de la expresión, se ejecuta el bloque de sentencias
correspondiente a la etiqueta default.

68
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

"'&-
;, • 6
Para asegurar el correcto flujo de ejecución de un programa
durante la evaluación de una sentencia switch, es
recomendable incluir una sentencia break al final del bloque
de instrucciones de cada case, incluido el correspondiente a la
etiqueta default. Esto es importante, porque si se omite la
sentencia break, cuando finaliza la ejecución del bloque de
sentencias de un case, el flujo del programa continúa
ejecutando los case siguientes y esto puede provocar un
comportamiento erróneo del programa .

Pensemos en el s,iguiente ejemplo:

Muestra la importancia del uso del break en una sentencia switch

Suponga que en una empresa de consultoría la categoría profesional de


un empleado se calcula a partir de su tasa de coste. La tabla muestra
los valores de las tasas y sus correspondientes categorías.

Volviendo al ejemplo de las calificaciones que antes se ha codificado


utilizando if-else anidados, ahora se utiliza un switch.

public class Calificaciones {


public static void main(String[] args) {
int calificacion = 9;
switch (calificacion) {
case 0:
case 1:
case 2:

69
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

case 3:
case 4: System.out.println("Reciclado");
break;
case 5: System.out.println("No aprobado");
break;
case 6: System.out.println("Bien");
break;
case 7:
case 8: System.out.println("Notable");
break;
case 9: System.out.println("Sobresaliente");
break;
case 10: System.out.println("Excelente");
break;
default: System.out.println("No presentado");
break;
}
}
}

Es importante ver que los case correspondientes a los valores 0, 1, 2 y 3


se han dejado vacíos porque el bloque de sentencias para estos casos es
el mismo que el del case 4. Para evitar repetir este código varias veces,
se deja vacío el bloque correspondiente a estos casos y no se incluye el
break.
De esta manera, cuando se cumple uno de ellos, se ejecuta el bloque de
sentencias correspondiente al case, que para los valores 0, 1, 2 y 3,
está vacío. Como no hay break, se ejecutan las siguientes líneas del
programa hasta llegar al bloque de sentencias correspondiente al case
4, que muestra el mensaje “Reciclado y, cuando encuentra el break,
finaliza el switch.
70
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL

.
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

.... �
'"..l..'"' El switch se diferencia de otras estructuras en que no es
necesario delimitar entre llaves el bloque de sentencias de
cada case. Solo son obligatorias las llaves de inicio y fin del
switch. En una estructura switch es obligatorio que los
valores de los distintos casos sean diferentes. Si no hay un
caso que coincida con el valor de la expresión y no se
incluye la etiqueta default, entonces el switch no ejecuta
ninguno de los bloques de sentencias.

Por último, conviene recordar que un switch es una estructura apropiada


para seleccionar entre un conjunto de opciones simples o predefinidas.
No se puede aplicar cuando la selección se basa en opciones complejas
o cuando dependen de un intervalo de valores. En ese caso es necesario
utilizar una estructura if-else anidada.

El operador condicional

Reoordemos:
El operador condicional(?:) se relaciona
con la estructura if-else. Es el único
operador de Java que utiliza tres
operandos.

71
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

-A·
• El primer operando es una condición lógica, el
segundo es el valor que toma la expresión cuando la
condición es true y el tercero es el valor que toma la
expresión cuando la condición es false.

El operador evalúa la condición delante del símbolo ?, que puede


escribirse entre paréntesis. Si vale true devuelve el valor que aparece a
continuación del signo ?. Si es false devuelve el valor que aparece a
continuación de los dos puntos.
El operador condicional tiene la siguiente sintaxis:

condicion-logica ? valor-si-verdadero : valor-si-falso;

La condición lógica también se puede expresar entre paréntesis:

(condicion-logica)? valor-si-verdadero : valor-si-falso;

Después de evaluar la condición lógica, se devuelve el valor


correspondiente al resultado lógico verdadero o falso.

Pensemos en el s,iguiente ejemplo:

Dada la edad de una persona, se desea mostrar un mensaje por la


consola que indique si es mayor de edad o no.

int edad = 16;


String txt;
txt = (edad >= 18) ? "Mayor de edad" : "Menor de edad";
System.out.print(txt);
72
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

La condición lógica es edad mayor o igual a 18 años. Si es verdadera, el


operador devuelve el texto “Mayor de edad”, en caso contrario devuelve
“Menor de edad”.
En este ejemplo la variable edad se inicializa a 16, por lo que el mensaje
que se muestra por la pantalla es:

Menor de edad

Estructuras de repetición


l 3 Las estructuras de repetición (también llamada
instrucción de ciclo, o un ciclo) permiten repetir
muchas veces un bloque de sentencias mientras se
cumpla una determinada condición. A estas
estructuras también se les conoce como estructuras
iterativas o bucles.

Como las estructuras de selección, las estructuras de repetición se


pueden combinar y anidar. Es frecuente utilizar una estructura de
repetición que contenga un bloque de sentencias que combine otras
estructuras de repetición y de selección. (Ladrón de Guevara, J., 2011).

,
e•
aS7
ue...•
Java cuenta con tres instrucciones de repetición (también
llamadas instrucciones de ciclo) que permiten a los programas
ejecutar instrucciones en forma repetida, siempre v cuando una
condición (llamada la condición de continuación del ciclo) siga
siendo verdadera.

73
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Las instrucciones de repetición se implementan con las instrucciones


while, do...while y for. Las instrucciones while y for realizan la acción (o
grupo de acciones) en sus cuerpos, cero o más veces; si la condición de
continuación del ciclo es inicialmente falsa, no se ejecutará la acción (o
grupo de acciones). La instrucción do...while realiza la acción (o grupo
de acciones) en su cuerpo, una o más veces.

Las palabras if, else, switch, while, do y for son palabras clave en
Java; se utilizan para implementar varias características de Java, como
las instrucciones de control. Las palabras clave no pueden usarse como
identificadores, como los nombres de variables. (Deitel, P. y Deitel, M.,
2008).
Las estructuras de repetición se componen de cuatro partes: la
inicialización, la condición, el bloque de sentencias y la
actualización.

Figura 9. Partes de las estructuras de repetición


Inicialización. Permite inicializar la estructura iterativa,
normalmente consiste en la declaración e
inicialización de la variable de control del
bucle. (Ladrón de Guevara, J., 2011).
Condición. Define la condición que se evalúa para
ejecutar el bloque de sentencias de la
estructura iterativa. Dependiendo del tipo
de estructura que se utilice, la condición
se comprueba antes o después de realizar
cada iteración. (Ladrón de Guevara, J.,
2011).
Bloque de sentencias. Conjunto de sentencias que se ejecutan
dentro de la estructura iterativa. (Ladrón
de Guevara, J., 2011).
Actualización. Actualización de la variable de control del
bucle. Normalmente se realiza al fina liza r
la ejecución del bloque de sentencias.
(Ladrón de Guevara, J., 2011).

Fuente: UDEMEX 2019 con información de: Ladrón de Guevara, J., 2011

74
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Estructura while

La instrucción (o instrucciones) contenida en la instrucción de repetición


while constituye el cuerpo de esta estructura, el cual puede ser una
sola instrucción o un bloque. En algún momento, la condición será falsa.
En este punto la repetición terminará y se ejecutará la primera
instrucción que esté después de la instrucción de repetición. (Deitel, P. y
Deitel, M., 2008).

El diagrama de flujo de una estructura while muestra que la condición


se verifica justo después de inicializar la variable de control. Si el
resultado de evaluar la condición por primera es falso, entonces no se
ejecuta el bloque de sentencias.

Ilustración 20. Diagrama de flujo de una estructura "while"

[ _.]
[_n,...od
l

__

l
'ínlclli�Z<!C o!' Ce, ¡.,
""'-i$bl¡a.d•(l('.lr,t,'QI

[ Fh''i
IRln�.,. é,.
'!:e"ten:I��

lidwllz.oc.on de l!ll
"IJlr�le eje c,cr,trol

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

75
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Cuando en la ejecución de un bloque de sentencias se llega a un bucle


while se comprueba si se verifica su condición, si se verifica se continua
ejecutando el bloque de sentencias del bucle hasta que esta deje de
verificarse. (Otero, A., 2003).

Su sintaxis es:
inicialización;
while (condición) {
bloque-de-sentencias;
actualizacion;
}


·""A.· Esta es la sintaxis general. ta condlclén del while se
escribe obligatoriamente entre paréntesis. Un while
no necesariamente requiere inicialización y
actualización de una variable de control.

En ese caso solo es necesario incluir la condición y el bloque de


sentencias

Cuando el programa ejecuta un while, lo primero que hace es evaluar la


condición. Si es verdadera ejecuta el bloque de sentencias, si es falsa
finaliza el while.

En cada iteración, cuando finaliza la ejecución del bloque de sentencias


se vuelve a evaluar la condición. De nuevo, si es verdadera ejecuta una
vez más el bloque de sentencias, si es falsa finaliza el while. Cuando
esto se produce, el flujo del programa continúa en la sentencia
inmediatamente posterior al while.

76
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Si la primera vez que se evalúa la condición el resultado es falso,


entonces no se ejecuta el bloque de sentencias. Por esta razón, se dice
que un while se ejecuta cero o más veces. Si la condición siempre es
verdadera, entonces el while nunca termina y se ejecuta
indefinidamente. Esto se conoce como bucle infinito.

Pensemos en el s,iguiente ejemplo:

Muestra el uso del while para calcular la función factorial de un número


entero positivo ‘n’.

La función factorial se define:

0! = 1
1! = 1
2! = 1 x 2
3! = 1 x 2 x 3
4! = 1 x 2 x 3 x 4
...
n!= 1 x 2 x 3 x 4 x 5 x ... x (n-2) x (n-1) x (n)

De la definición anterior, se puede calcular el factorial utilizando una


estructura repetitiva con una variable de control que empiece en 1 y
termine en ‘n’. La actualización de la variable de control del while suma
uno cada vez. (Ladrón de Guevara, J., 2011).

Programa que calcula la función factorial de un número utilizando la


estructura while.
public class FactorialWhile {
public static void main(String[] args) {

77
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

int n = 5; // n se inicializa a 5 para calcular 5!


int factorial = 1 // factorial se inicializa a 1
int i = 1; // el valor inicial de i es 1
while (i <= n) {
factorial = factorial * i;
i++;
}
System.out.println("El factorial de " + n + " es " +
factorial);
}
}

En la expresión factorial = factorial * i la variable factorial aparece dos


veces. Primero se calcula el producto factorial * i y después se asigna
este resultado a la variable factorial. Es por esto que la tabla muestra
una columna con los valores de los operandos del producto y otra con el
valor final de la variable factorial. La siguiente tabla muestra el proceso
de cálculo que se realiza en el while.

Ilustración 21. Proceso de cálculo que se realiza en el while

i n faeteríal * 1 tactorial

:ll 5 1 * 1 1
2 5 l * 2. 2
3 s 2*3 6
4 5 6*4 24
s s 24 * S 12.0

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

78
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

La variable factorial se inicializa a 1. En la primera iteración i vale 1, se


calcula el producto factorial * i con los valores 1 * 1 y se asigna 1 a la
variable factorial. En la segunda iteración i vale 2, se calcula factorial * i
con los valores 1 * 2 y se asigna 2 a la variable factorial. En la tercera
iteración i vale 3, se calcula factorial * i con los valores 2 * 3 y se asigna
6 a la variable factorial. En la cuarta iteración i vale 4, se calcula
factorial * i con los valores 6 * 4 y se asigna 24 a la variable factorial.
En la última iteración i vale 5, se calcula el producto factorial * i con los
valores 24 * 5 y se asigna 120 a la variable factorial.

De los resultados de la tabla anterior, se puede observar que no es


necesario calcular el producto factorial * i en la primera iteración cuando
i vale 1. Este producto siempre va a dar como resultado 1. El algoritmo
es más eficiente si se elimina la primera iteración, basta con inicializar la
variable de control i a 2. En este ejemplo, el valor inicial de i es 1 para
que el algoritmo sea más claro. (Ladrón de Guevara, J., 2011).

Estructura do-while


........ Su comportamiento es semejante al !bucle while, sólo que aquí la
condición va al final del bloque de sentencias del bucle, por lo que
tenemos garantizado que el bloque de sentencias se va a ejecutar al
menos una vez. Dependerá del caso concreto si es más conveniente
emplear un bucle while o do while. (Otero, A., 2003).

La estructura de repetición do-while ejecuta el bloque de sentencias al


menos una vez. Después comprueba la condición y repite el bloque de
sentencias mientras la condición es verdadera. (Ladrón de Guevara, J.,
2011).

79
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

El diagrama de flujo de una estructura do-while muestra que la


condición se verifica al final, después de ejecutar el bloque de
sentencias la primera vez.

Ilustración 22. Diagrama de flujo de una estructura "do-while"

[ rn1cJo
]

mlck,Az,..· IY'1 ::., 11,


>41'\cOOlé ,j� �I

hC:...a. IMd(io de a
�mt: le � cOf"IL"tll

[ ]
SI
fln

Fuente: Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima edición.


Pearson Educación, México. ISBN: 978

La sintaxis de do while es:

inicialización;
do {
bloque-de-sentencias;
actualizacion;
} while (condición);

80
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

-'A,- Esta es la sintaxis general. La condición del do-while


se escribe obligatoriamente entre paréntesis.

Un do-while no necesariamente utiliza una variable de control. En ese


caso solo es necesario incluir la condición y el bloque de sentencias:

do {
bloque-de-sentencias;
} while (condición);

Cuando el programa ejecuta un do-while, lo primero que hace es


ejecutar el bloque de sentencias y luego evalúa la condición. Si es
verdadera, ejecuta de nuevo el bloque de sentencias, si es falsa finaliza
el do-while.
En cada iteración, cuando finaliza la ejecución del bloque de sentencias
se vuelve a evaluar la condición. De nuevo, si es verdadera ejecuta una
vez más el bloque de sentencias, si es falsa finaliza el do-while. Cuando
esto se produce, el flujo del programa continúa en la sentencia
inmediatamente posterior al do-while. (Ladrón de Guevara, J., 2011).

Pensemos en el siguiente ejemplo:

Programa que calcula la función factorial de un número utilizando la


estructura do-while.

public class FactorialDoWhile {

81
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

public static void main(String[] args) {


int n = 5; // n se inicializa a 5 para calcular 5!
int factorial = 1 // factorial se inicializa a 1
int i = 1; // el valor inicial de i es 1

do {
factorial = factorial * i;
i++;
} while (i <= n);

System.out.println("El factorial de " + n + " es " +


factorial);
}
}

Estructura de repetición for

. ,
e ª aS
Que.1
La estructura de repetición far repite el bloque de
sentencias mientras la ecndlclén del for es verdadera. Un
for es un caso particular de la estructura while. Solo se
debe utilizar cuando se sabe el número de veces. que se
debe repetir el bloque de sentencias.

El diagrama de flujo de una estructura for es igual que el de un while.


Un for verifica la condición justo después de inicializar la variable de
control. Si el resultado de evaluar la condición por primera es falso,
entonces no se ejecuta el bloque de sentencias. (Ladrón de Guevara, J.,
2011).

82
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Su formato es el siguiente:

for (inicialización; condición; actualización) {


bloque-de-sentencias;
}

Cuando el programa ejecuta un for, lo primero que hace es evaluar la


condición. Si es verdadera ejecuta el bloque de sentencias, si es falsa
finaliza el for.
En cada iteración, cuando finaliza la ejecución del bloque de sentencias
se vuelve a evaluar la condición. De nuevo, si es verdadera ejecuta una
vez más el bloque de sentencias, si es falsa finaliza el for. Cuando esto
se produce, el flujo del programa continúa en la sentencia
inmediatamente posterior al for. (Ladrón de Guevara, J., 2011).


Pensemos en el s,iguiente ejemplo:

Programa que calcula la función factorial de un número utilizando la


estructura for.

public class FactorialFor {


public static void main(String[] args) {
int n = 5; // n se inicializa a 5 para calcular 5!
int factorial = 1 // factorial se inicializa a 1

for (int i=1; i <= n; i++) {


factorial = factorial * i;

83
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

System.out.println("El factorial de " + n + " es " +


factorial);}}

Normalmente la variable de control se declara y se inicializa en la


sección de inicialización de la variable. En este ejemplo se hace int i= 1,
es decir se declara una variable i de tipo int y se inicializa a 1. La
condición del for es i <= n, la misma que se ha utilizado en el while y el
do-while. Por último, la variable i se incrementa en 1 en cada iteración.
En el for, el while y el do-while el incremento de i se realiza con el
operador ++. Es posible combinar estructuras de selección y estructuras
de iteración. Si se define una estructura de repetición dentro de otra,
entonces se tiene una estructura de repetición anidada.

Uso de las estructuras de repetición

Es importante utilizar la estructura de repetición más apropiada para


cada caso. En general, se recomienda seguir los siguientes criterios:

84
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Figura 10. Utilización de las estructuras de control

El while El do-while El for


•Se debe utilizar cuando •Se debe utilizar cuando •Se debe utilizar cuando
no se sabe el número el bloque de sentencias se sabe el número de
de veces que se va a se debe ejecutar al veces que se va a
repetir el bloque de menos una vez. repetir el bloque de
sentencias. sentencias

Fuente: UDEMEX 2019 con información de: Ladrón de Guevara, J., 2011

Un for es útil cuando se conoce el valor inicial para la variable de control


del bucle y además es necesario utilizar una expresión aritmética para
actualizar esta variable.

Estructuras de salto

Además de las instrucciones de selección y repetición, Java


cuenta con las instrucciones break y conti nue para alterar el
flujo de control. En Java existen dos sentencias que
permiten modificar el flujo secuencial de un programa y
provocan un salto, en la ejecución. Estas sentencias son
break y continue.
85
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Ambas se utilizan con las estructuras de repetición


para interrumpir la ejecución con break o volver al
principio con continue. Además, el break se utiliza para
interrumpir la ejecución de un switch. (Deitel, P. y
Deitel, M . r 2008) .

No se tratan de un bucle, pero sí de una sentencia íntimamente


relacionada con estos. El encontrarse una sentencia break en el cuerpo
de cualquier bucle detiene la ejecución del cuerpo del bucle y sale de
este, continuándose ejecutando el código que hay tras el bucle. Esta
sentencia también se puede usar para forzar la salida del bloque de
ejecución de una instrucción condicional (esto ya se vio con switch).
Continue también detiene la ejecución del cuerpo del bucle, pero en
esta ocasión no se sale del bucle, sino que se pasa a la siguiente
iteración de este. (Otero, A., 2003).

Sentencia break

.
.. ; . .
-,&-La sentencia break se utiliza para interrumpir la ejecucron de una
estructura de repetición while, for, do ... whils, o switch. Cuando se ejecuta
el break, el flujo del programa continúa en la sentencia inmediatamente
posterior a la estructura de repetición o al switch. Los usos comunes de
break son para escapar anticipadamente del ciclo, o para omitir el resto de
una instrucción switch. (Deitel, P. y Deitel, M.J 2008).

Pensemos en el siguiente ejemplo:

Uso de una instrucción break para salir de un ciclo for.

86
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

// La instrucción break para salir de una instrucción for.


public class PruebaBreak
{
public static void main( String args[] )
{
int cuenta; // la variable de control también se usa cuando termina
el ciclo

for ( cuenta = 1; cuenta <= 10; cuenta++ ) // itera 10 veces


{
if ( cuenta == 5 ) // si cuenta es 5,
break; // termina el ciclo

System.out.printf( "%d ", cuenta );


} // fin de for
System.out.printf( "\nSalio del ciclo en cuenta = %d\n", cuenta );
} // fin de main
} // fin de la clase PruebaBreak

1234
Salio del ciclo en cuenta = 5

Como podemos observar salió del ciclo en cuenta = 5


Cuando la instrucción if anidada dentro de la instrucción for determina
que cuenta es 5, se ejecuta la instrucción break. Esto termina la
instrucción for y el programa continúa inmediatamente después de la
instrucción for, la cual muestra un mensaje indicando el valor de la
variable de control cuando terminó el ciclo. El ciclo ejecuta su cuerpo
por completo sólo cuatro veces en vez de 10.

87
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL

. .a�. , Nota: Una barra diagonal inversa (\) en una cadena es un


ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

...

carácter de escape. Indica que s.e va a imprimir un "carácter


especial", Java combine el slgulente carácter con la barra
diagonal inversa para formar una .secuencia de escape. La
secuencia de escape \n representa el carácter de nueva línea,
el cual coloca el cursor en la siguiente línea .

Sentencia continue


l 3

La .sentencia contfnue únicamente puede aparecer en una


estructura de repetición. Cuando se ejecuta un centínue,
se deja de ejecutar el resto del bloque de sentencias de la
estructura iterativa para volver al inicio de ésta.

Cuando la sentencia continue se ejecuta en una instrucción while, for o


do...while, omite las instrucciones restantes en el cuerpo del ciclo y
continúa con la siguiente iteración del ciclo. En las instrucciones while y
do...while, la aplicación evalúa la prueba de continuación de ciclo justo
después de que se ejecuta la instrucción continue. En una instrucción for
se ejecuta la expresión de incremento y después el programa evalúa la
prueba de continuación de ciclo. (Deitel, P. y Deitel, M., 2008).

Pensemos en el siguiente ejemplo:

88
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

// Instrucción continue para terminar una iteración de una


// instrucción for.
public class PruebaContinue
{
public static void main( String args[] )
{
for ( int cuenta = 1; cuenta <= 10; cuenta++ )
// itera 10 veces
{
if ( cuenta == 5 ) // si cuenta es 5,
continue;
// omite el resto del código en el ciclo
System.out.printf( "%d ", cuenta );
} // fin de for

System.out.println( "\nSe uso continue para omitir imprimir 5" );


} // fin de main
} // fin de la clase PruebaContinue

1234
Salio del ciclo en cuenta = 5

En el ejemplo anterior se utiliza la instrucción continue en un ciclo for.


Cuando la instrucción if anidada determina que el valor de cuenta es 5
se ejecuta la instrucción continue. Cuando se ejecuta la instrucción
continue, el control del programa continúa con el incremento de la
variable de control en la instrucción for.
Nota: El método System.out.printf (f significa “formato”) muestra datos
con formato.

89
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Return

. ,,;.

e 3 aS
ue ..1
Esta sentencia está profundamente relacionada con los métodos, ya que es
la sentencia que le permite devolver al método un valor. Podíamos haber
esperado hablar de métodos para introducir esta sentencia, pero hemos
decidido introducirla aquí por tener una función relacionada, entre otras
cosas, con control de flujo. (Otero, A., 2003}.

Cuando se llama a un método al encontrarse con una sentencia return


se transfiere el valor especificado al código que llamó a dicho método y
se devuelve el control al código invocador. Su misión tiene que ver con
el control de flujo: se deja de ejecutar código secuencialmente y se pasa
al código que invocó al método.

Esta sentencia es un caso especial, ya que aunque permite realizar un


salto, no es una instrucción de salto propiamente dicha. Esta sentencia
tiene la siguiente sintaxis:

return <valor>;

Cuando return es encontrado en el programa, el flujo salta fuera del


método donde fue encontrado, no ejecutándose ninguna otra instrucción
por debajo de esta y devuelve el control al método que lo invocó. Si el
método donde se encuentra return es el principal, la aplicación termina.

90
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

i
.....- Esta sentencia permite devolver un valor al método que llama a
otro tras la ejecución de un proceso determinado. Lo que en Java
es muy importante, porque los métodos, si se especifica que
tienen que devolver un dato de un tipo determinado (cualquiera
excepto '.1!9j_g), tienen que contener una instrucción .rn.t{JJJJ que
devuelva un valor coincidente con la declaración del tipo del
método. En otro caso un mensaje de advertencia será reportado
por el compilador. Un programa Java no puede compilarse si este
contiene errores o advertencias. (Ladrón de Guevara, JI., 2011).

Es tiempo de que muestres el aprendizaje obtenido hasta el momento,


por eso te invito a que realices la actividad complementaria 2.2 y
posteriormente la actividad de aprendizaje 2.2

4C Acti idad Com


] Wi Acti idad de A rendiza·e 2.2

91
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

RESUMEN UNIDAD 2

Esta unidad se puede resumir de la siguiente forma:

Se identifica con la estructura general de


un programa en lenguaje Java y sus
Estructura elementos principales: comentarios,
general de, un definiciones de clase, definiciones de
programa método, identificadores y sus normas
e,_
básicas, sentencias y la palabras clave
del lenguaje de programación Java.

Se estudiaron las variables, sus tipos,


cómo se definen e inicializan así como la
visibilidad y vida de las variables.

Se describieron los operadores:


aritméticos, unarios, de asignación
compuestos, de igualdad y relacionales,
lógicos, condicional (?:), instanceof, que
actúan a nivel de bits y su orden de
precedencia.

92
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
w
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

Se describieron las estructuras básicas


del lenguaje Java: Sentencias y
expresiones y las estructuras de
control(de selección, de repetición y
de salto).

CRITERIOS DE EVALUACIÓN DE LA UNIDAD 2

ACTIVIDAD DE

e
TEMA (S) VALOR
APRENDUAJE

[ l
2.1. Estructura general de un

e
programa. Mapa conceptual 5%
2.2. Variables. �

[ J
2.3. Operadores.
Síntesis 5%
2.4. Estructuras de programación.

l j
TOTAL
10%
UNIDAD 2

REFERENCIAS CONSULTADAS ANEXAS AL PROGRAMA

1. Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima


edición. Pearson Educación, México. ISBN: 978-970-26-1190-5

2. García de Jalón, J. (2000). Aprenda Java como si estuviera en


primero. Escuela Superior de Ingenieros Industrialesde San
Sebastiá. UNIVERSIDAD DE NAVARRA. España.
http://ocw.uc3m.es/ingenieria-
informatica/programacion/manuales/java2-U-Navarra.pdf/view.

93
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 2. PRINCIPIOS DEL LENGUAJE JAVA

3. Ladrón de Guevara, J. (2011). Fundamentos de programación en


Java. Universidad Complitense de Madrid. España. ISBN 978-84-
96285-36-2. Recuperado el 10 de enero de 2014, de:
http://www.etnassoft.com/biblioteca/fundamentos-de-
programacion-en-java/

4. Otero, A. (2003). Java2. Java Hispano. Recuperado el 10 de enero


de 2014, de: http://www.javahispano.org/portada/2011/7/5/java-
basico-con-ejemplos.html.
5. Sanchez, J. (2004). Java2 incluye Swing, Threads, programación
en red, JavaBeans, JDBC y JSP / Servlets España. Recuperado el
10 de enero de 2014, de:
http://www.jorgesanchez.net/programacion/manuales/Java.pdf

94
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

UNIDAD 3

CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A


OBJETOS EN JAVA

En el siguiente esquema se representan los contenidos temáticos


correspondientes a la tercera unidad Clases y objetos, cada uno de
estos temas guardan relación entre sí.

SECUENCIA DIDÁCTICA «UNIDAD 3»

Figura 1. Mapa de contenidos temáticos unidad 3

4.1. Estructuras de almacenamiento


4.4. AWí y Swi ng

4.4.1 Componentes 4.1.1 Arravs unldlmenslonales


4.4.2 Comparación entre 4.1.2Arrays multídtrnensíonales
componentes de GUI ligeros y 4.1.3 Uso de arrays
pesados 111111/{_ � 4.1.4 Ordenación de arrays
._4_4_
.._
' _M_é_
3 _t _
o o_s_d_e_J_c_o_m_p_o_n
d __
e t_
n __,
· �--������-...� '-������������-'

UNIDAD 4
PROGRAMACIÓN
EN JAVA

*
4. 2 Excep don es
4.3. Flujos de entrada /salida

4.2.1 Cuándo utilizar el manejo


4.3.1 Flujos de entrada y salida de excepciones
de datos de Java 4.2.2 Jerarquía de excepciones
4.3.2 leer y escribir en ficheros en Java
de texto 4.2.3 Sentencias para detectar,
4.3.3 leer y escribir objetos en indicar y manejar excepciones:
ficheros 4.2.4 Manejo de excepciones

Fuente: UDEMEX 2019

1
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

INTRODUCCIÓN

Esta unidad tiene como objetivo describir a los elementos abstractos del
modelo orientado a objetos denominados objetos. En la primera sección
se centra en los conceptos básicos de clases, objetos, sus elementos y
su representación. En la segunda sección analizaremos los atributos,
métodos y constructores. En la tercera sección hablaremos sobre la
composición, herencia, extensión de clases y polimorfismo. Finalmente
ampliaremos el análisis los elementos de clase, conocerás los conceptos
de derechos de acceso, paquetes y clases predefinidas.

Cada contenido temático de esta unidad ha sido diseñado apegado a la


nueva estrategia de aprendizaje por competencias, por lo tanto es
necesario que sigas todas las instrucciones, así como dar seguimiento a
las actividades de aprendizaje, a su vez demostrar interés en las
evaluaciones y asesorías para que puedas alcanzar el éxito y cumplas tu
meta de obtener la licenciatura.

Sólo nos resta desear mucho éxito y suerte.

2
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

COMPETENCIAS ESPECÍFICAS

Figura 2. Competencias específicas unidad 2

Comprende, describe y modela los conceptos principales del paradigma de


programación orientado a objetos a través de la aplicación a situaciones de la vida
reaí, para entender el contexto de desarrollo en Java.

Experimenta los conceptos adquiridos a través del desarrollo de código en el lenguaje


JAVA, investigando programas de manera especifica de cada concepto, para resolver
problemas enfocados a la vida real.

Tiene tolerancia en la revisión del desarrollo de código a través de un lenguaje de


programación amigable, para aumentar su habilidad intuitiva y secuencial.

0®@
Fuente: UDEMEX 2019

3
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

3.1 Clases y objetos

• los objetos tienen ciertas cosas en común, Todos ellos


l. 3 tienen atributos (como tamaño, forma, color y peso), y
todos exhiben comportamientos (por ejemplo, una pelota
rueda, rebota, se infla y desinfla; un bebé llora, duerme,
gatea, camina y parpadea; un automóvil acelera, frena y
da vuelta; una toalla absorbe agua). (Deitel, P. y Deitel,
M., 2008).

En esta unidad estudiaremos los tipos de atributos y comportamientos


que tienen los objetos de software.

3.1.1 Clases

Un programa orientado a objetos es,


esencialmente, una colección de objetos que se
crean, interacdonan entre sí y dejan de existir
cuando ya no son útiles durante la ejecución de
un programa. (Ladrón de Gueva ra, J., 201 l)

Un programa Java utiliza clases y objetos. Una clase es una


representación abstracta de un conjunto de objetos que comparten los
mismos atributos y comportamiento, es decir, una clase describe un tipo
de objetos. Un objeto es una instancia de una clase, tiene una identidad
propia y un estado. La identidad de un objeto se define por su
identificador. El estado de un objeto se define por el valor de sus
atributos.

-i:- El comportamiento de un objeto queda determinado por


el comportamiento la clase a la que pertenece. Los objetos
son unidades indivisibles y disponen de mecanismos de
interacción llamados métodos. (Ladrón de Gueva ra, J., 201 l).

4
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Cada el mensaje que se envía a un objeto se conoce como llamada a un


método, y ésta le indica a un método del objeto que realice su tarea.

Cada método puede especificar parámetros que


representan la información adicional requerida por el
método para realizar su tarea correctamente. La llamada a
un método suministra valores {llamados argumentos) para
los parámetros del método. CIJ..e.i.tg.t, P. y .R.e.i)�J, M.,, 2008).

En su forma más simple, una clase se define por la palabra reservada


class seguida del nombre de la clase. El nombre de la clase debe
empezar por mayúscula. Si el nombre es compuesto, entonces cada
palabra debe empezar por mayúscula. Círculo, Rectángulo, Triangulo y
FiguraGeometrica son nombres válidos de clases.

Pensemos en el siguiente ejemplo

Por ejemplo, la clase Circulo se define con tres atributos: el radio y las
coordenadas x, y que definen la posición del centro del círculo.

/* Esta clase define los atributos de un círculo */


public class Circulo {
int x;
int y;
int radio;
}

5
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Una vez que se ha declarado una clase, se pueden crear objetos a


partir de ella. A la creación de un objeto se le denomina
instanciamiento. Es por esto que se dice que un objeto es una
instancia de u na clase y el término instancia y objeto se utilizan
indistintamente.

Para crear objetos, basta con declarar una variable de alguno de los
tipos de figuras geométricas:

Circulo circulo1;
Circulo circulo2;

Para crear el objeto y asignar un espacio de memoria es necesario


realizar la instanciación con el operador new. La palabra clave new crea
un nuevo objeto de la clase especificada a la derecha de la palabra clave
(es decir, Circulo). Los paréntesis a la derecha de Circulo son
obligatorios.

circulo1 = new Circulo();


circulo2 = new Circulo();

Después de crear los objetos, circulo1 y circulo2 almacenan los valores


predeterminados de la clase Circulo. A partir de este momento los
objetos ya pueden ser referenciados por su nombre. Los nombres
circulo1 y circulo2 son las referencias válidas para utilizar ambos
objetos.

6
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

3.1.2 Los elementos de una clase

Como ya se estudió en la unidad 1, una clase describe un tipo de


objetos con características comunes. Es necesario definir la información
que almacena el objeto y su comportamiento.

Atributos

Un objeto tiene atributos que lleva consigo cuando se utiliza en un


programa y la información del objeto se almacena en atributos. Éstos se
especifican como parte de la clase del objeto.

1
..'•"· Los atrihutes se especifican mediante las varia bles de
.& instancia de la ola se. Los atributos pueden ser de tipos primitivos
de Java o de tipo objeto. C.Q.�jA§l, P. y Q.�L�§[, M., 2008).

Pensemos en ell siguiente ejemplo

Para el catálogo de vehículos de una empresa de alquiler, es necesario


conocer la matrícula del coche, su marca, modelo, color, la tarifa del
alquiler y su disponibilidad.
public class Vehiculo {
String matricula;
String marca;
String modelo;
String color;
double tarifa;
boolean disponible;
}

7
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

En este ejemplo, los atributos matricula, marca, modelo y color son


cadenas de caracteres, tarifa es un número real y disponible es un valor
lógico.

Métodos y constructores

-'A-
• Además de definir los atributos de un objeto... es necesario
definir los métodos que determinan su comportamiento. En una
clase se proporcionan uno o más métodos, los cuales están
diseñados para realizar las tareas de esa clase. Toda clase debe
definir un método especial denominado constructor para
instanciar los objetos de la clase. Este método tiene el mismo
nombre de la clase. (Ladrón de Guevara, J.,. 2011) .


....__. Por lo general, los constructores se declaran como JQl.Jbl,ic. Si una
clase no incluye un constructor, las variables de instancia de esa
clase se inicializan con sus valores predeterminados. Si un
programador declara uno o más constructores para una clase, el
compilador de Java no creará un constructor predeterminado
para esa clase. (Deitel, P. y IJeitet, M.,, 2008).

Por ejemplo, para la clase Vehículo, el identificador del método


constructor es Vehiculo.

El método constructor se ejecuta cada vez que se instancia un objeto de


la clase. Este método se utiliza para inicializar los atributos del objeto
que se instancia.
Para diferenciar entre los atributos del objeto y los identificadores de los
parámetros del método constructor, se utiliza la palabra clave this. (
también conocida como referencia this). De esta forma, los parámetros
8
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

del método pueden tener el mismo nombre que los atributos de la clase.
Esto permite hacer una asignación como la que se muestra a
continuación. (Deitel, P. y Deitel, M., 2008).

this.marca = marca;

this.marca se refiere al atributo del objeto y marca al parámetro del


método.

• Pensemos en el siguiente ejemplo

El método constructor inicializa los atributos matricula, marca, modelo,


color y tarifa.

public class Vehiculo {


String matricula;
String marca;
String modelo;
String color;
double tarifa;
boolean disponible;

// el método constructor de la clase Vehiculo

public Vehiculo(String matricula,


String marca,
String modelo,
String color,

9
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

double tarifa) {
this.matricula = matricula;
this.marca = marca;
this.modelo = modelo;
this.color = color;
this.tarifa = tarifa;
this.disponible = false;
}
}

.�¡#. La instanciación de un objeto se realiza ejecutando el método


constructor de la clase. (Ladrón de Guevara, J., 2011).

Vehiculo vehiculo1 = new Vehiculo("4050 ABJ",


"VW", "GTI",
"Blanco",
100.0);

La palabra clave new llama al constructor de la clase para realizar la


inicialización. La llamada al constructor se indica mediante el nombre de
la clase, seguido de paréntesis; el constructor debe tener el mismo
nombre que la clase. (Deitel, P. y Deitel, M., 2008).

En este ejemplo se instancia el objeto vehiculo1. El método constructor


crea el objeto vehiculo1 con la matrícula “4050 ABJ”, marca “VW”,
modelo “GTI”, color “Blanco” y tarifa 100.0 dólares.

Vehiculo vehiculo2 = new Vehiculo("2345 JVM",


"SEAT",
"León",
"Negro",
80.0);

10
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

En este ejemplo se instancia el objeto vehiculo2. El método constructor


crea el objeto vehiculo2 con la matrícula “2345 JVM”, marca “SEAT”,
modelo “León”, color “Negro” y tarifa 80.0 dólares.


........ La instanciación de un objeto conslste en asignar un espacio de
memoria al que se hace referencia con el nombre del objeto. Los
identificadores de los objetos permiten acceder a los valores
almacenados en cada objeto. (Ladrón de Guevara, J . 1 2011).

La mayoría de las declaraciones de variables de instancia van precedidas


por la palabra clave prívate. Al igual que public, la palabra clave private
es un modificador de acceso. Las variables o los métodos declarados con
el modificador de acceso private son accesibles sólo para los métodos de
la clase en la que se declaran. Al proceso de declarar variables de
instancia con el modificador de acceso private se le conoce como
ocultamiento de datos. (Deitel, P. y Deitel, M., 2008).

En estos ejemplos, los objetos vehiculo1 y vehiculo2 almacenan valores


diferentes y ocupan espacios de memoria distintos.

Para acceder a los atributos de los objetos de la clase Vehiculo se


definen los métodos ‘get’ (es decir, asignar valores a) y ‘set’(es decir,
asignar valores a). Los métodos ‘get’ se utilizan para consultar el estado
de un objeto y los métodos ‘set’ para modificar su estado. (Ladrón de
Guevara, J., 2011).

En la clase Vehiculo es necesario definir un método ‘get’ para cada uno


de sus atributos. Los métodos ‘set’ solo se definen para los atributos que
pueden ser modificados después de que se ha creado el objeto. En este
caso es necesario definir setTarifa(double tarifa) y setDisponible(boolean
11
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

disponible) para modificar la tarifa del alquiler del vehículo y su


disponibilidad, respectivamente.

public class Vehiculo {


String matricula;
String marca;
String modelo;
String color;
double tarifa;
boolean disponible;

// los métodos ‘get’ y ‘set’ de la clase Vehiculo

public String getMatricula() {


return this.matricula;
}
public String getMarca() {
return this.marca;
}
public String getModelo() {
return this.modelo;
}
public String getColor() {
return this.color;
}
public double getTarifa() {
return this.tarifa;
}
public boolean getDisponible() {
return this.disponible;
}

12
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

public void setTarifa(double tarifa) {


this.tarifa = tarifa;
}
public void setDisponible(boolean disponible) {
this.disponible = disponible;
}
}

Los métodos pueden realizar tareas y devolver información cuando


completan estas tareas. La palabra clave void indica que este método
realizara una tarea, pero no devolverá ningún tipo de información
cuando complete su tarea.

3.1.3 Objetos

-:a:·• Un objeto se compone de atributos y métodos. Para acceder a los


elementos de un objeto se escribe el nombre del objeto, un punto
y el nombre del elemento al que se desea acceder,

Cuando usted crea un nuevo objeto, estos datos se colocan en los


paréntesis que van después del nombre de la clase.

Vehiculo vehiculo1 = new Vehiculo("4050 ABJ",


"VW", "GTI",
"Blanco",
100.0);
System.out.println("Matricula : " +
vehiculo1.matricula);
System.out.println("Marca y modelo: " +
vehiculo1.marca + " " +
vehiculo1.modelo);
System.out.println("Color : " +

13
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

vehiculo1.color);
System.out.println("Tarifa : " +
vehiculo1.tarifa);

La salida por la consola:

Matrícula : 4050 ABJ


Marca y modelo: VW GTI
Color : Blanco
Tarifa : 100.0

, • � Para acceder a un método, además de su nombre hay que


"'.A• indicar la lista de argumentos requeridos por el método.
Cuando la declaración del método no incluye parámetros no
es necesario pasar argumentos.

El siguiente código Java crea el objeto vehiculo1 y muestra su matrícula


y su tarifa. A continuación modifica la tarifa a 90.0 dólares y la muestra
de nuevo.

Vehiculo vehiculo1 = new Vehiculo("4050 ABJ",


"VW",
"GTI",
"Blanco",
100.0);
System.out.println("Matricula : " +
vehiculo1.getMatricula());
System.out.println("Tarifa : " +
vehiculo1.getTarifa());
vehiculo1.setTarifa(90.0);
System.out.println("Matricula : " +

14
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

vehiculo1.getMatricula());
System.out.println("Tarifa : " +
vehiculo1.getTarifa());

La salida por la consola:

Matrícula : 4050 ABJ


Tarifa : 100.0
Matrícula : 4050 ABJ
Tarifa : 90.0

Para mostrar la tarifa del objeto vehiculo1 se puede acceder


directamente al atributo tarifa del objeto o se puede ejecutar el método
getTarifa(). Esto se debe a que los atributos de clase Vehiculo son de
acceso público porque se han declarado public en vez de private. Los
atributos de la clase se deben declarar private y para acceder a ellos se
debe utilizar un método ‘get’.

La referencia null

......... Una referencia a un objeto puede no tener asignada una


instancia. Esto puede ocurrir porque se ha dedarado el
objeto pero no se ha lnstarrclado, es decir no se ha
creado un objeto con el operador new. Existe un valor
especial, llamado .11�!! que indica que un objeto 1110 se
ha instanciado. (Ladrón de Guevara, J., 2011 )i.

A continuación se declara el objeto vehiculo2, pero no se crea una


instancia para él.

Vehiculo vehiculo2;

15
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Mientras no se instancie el objeto vehiculo2 su referencia vale null. En


un programa Java no se deben dejar referencias de objetos sin
instanciar.

Es necesario asegurarse que los objetos existen para evitar referencias


null. El objeto se puede instanciar en la misma declaración o más
adelante, como se muestra en el siguiente ejemplo.

Vehiculo vehiculo2;
// el objeto vehiculo2 se declara pero no se instancia
// la instancia se crea utilizando el operador new
Vehiculo vehiculo2 = new Vehiculo("2345 JVM",
"SEAT",
"León",
"Negro",
80.0);

Para saber si una referencia está instanciada o no, se puede comparar


con null.

if (vehiculo2 == null) {
System.out.print("vehiculo2 es una referencia null")
}
if (vehiculo2 != null) {
System.out.print("vehiculo2 está instanciado")
}

Si vehiculo2 es null, la primera expresión es true y la segunda false.

En ese caso, el programa muestra por la consola el mensaje:

Vehiculo2 es una referencia null

16
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Cuando una clase sólo tiene el constructor predeterminado, sus


variables de instancia se inicializan con sus valores predeterminados.

• Las variables de
. 'A,_. los tipos char, bvte, short, int, long, float y
double se inicializan con O, las variables de tipo boolean se
inicializan con false, y las variables de tipo por referencia se
inicializan con null. (Deitel, P. y Deitel., M., 2008).

El ciclo de vida de un objeto.

El ciclo de vida de un objeto empieza por su

,,
declaración, su instanciación y su uso en un
programa Java hasta que finalmente
desaparece. (Ladrón de Guevara, J . , 2011) .
.___

Cuando un objeto deja de ser utilizado, Java libera la memoria asignada


al objeto y la reutiliza. El entorno de ejecución de Java decide cuándo
puede reutilizar la memoria de un objeto que ha dejado de ser útil en un
programa. El programador no debe preocuparse de liberar la memoria
utilizada por los objetos. A este proceso se le conoce como recolección
de basura. Java cuenta con un sistema recolector de basura que se
encarga de liberar los objetos y los espacios de memoria que ocupan
cuando éstos dejan de ser utilizados en un programa. (Ladrón de
Guevara, J., 2011).

3.1.4 Representación de clases y objetos utilizando diagramas


UML

17
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Los diagramas de clases de UML modelan los campos, constructores y


métodos de las clases. Utilizaremos los diagramas de clases de UML a
menudo para sintetizar los atributos y las operaciones de una clase.

Una clase se representa como un recuadro dividido en


tres partes: el nombre de la clase en la parte superior, la
declaración de atributos y la declaración de métodos. El
compartimiento superior contiene el nombre de la clase,

-'
centrado horizontalmente y en negrita. El compartimiento
1 I intermedio contiene los atributos de la clase, que
corresponden a los campos en Java. El compartimiento
• inferior contiene las operaciones de la clase, que
corresponden a los métodos y constructores en Java. Para
modelar las operaciones, 1!M.b lista el nombre de la
operación, seguido de un conjunto de paréntesis. El signo
+ significa gublic , el signo - prívate y el signo grotected,
llamados modificadores de acceso controlan el acceso a
las variables y los métodos de una clase. (Deitel, P. y
Deitel, M., 2008).

18
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Ilustración 1. Ejemplo de la clase vehículo

Representacíón de la clase Vehiculo


utilizando un diagrama de clases

1/chiculo
+IMbJC\Aa: Stt119
+MlvrA• <;lr11VJ
+modelo: Strno
+roo, <ótlW'IQ
+t4do: dcUlle
�� . .........,..,,
�:StmJ
+QetMorct(): Sbing
�:!'tring
+Qet'(dor(): stmo
+oetf ,Jd�: del.ble
�:boclean
+set",Jd�t«f•: double)
+��: :ioole,n)

Fuente: http://www.etnassoft.com/biblioteca/fundamentos-de-programacion-en-java/

Los objetos se representan como cajas que indican el nombre del


objeto, la clase a la que pertenecen y el estado del objeto.

Ilustración 2. Ejemplo de clases utilizando diagrama de clases

Representación de los objetos


vehiculol y vehiculo2
utilizando un diagrama de clases

vehlculo l : VehtcUo vehiculo2: Vehkulo


matrk:ula • •4050 Aa1' matricul-, • •2345 ]'M'
marca • 'VW" mar-ca - "SEAt"
modelo - "GTr modelo - 1.eón"
color • '1llanco" colot • "Neq-o•
tarifa - 100.0 tarifa - 80.0
disponible .. true dsponíble = false

Fuente: http://www.etnassoft.com/biblioteca/fundamentos-de-programacion-en-java/

El estado de un objeto puede cambiar durante la ejecución de un


programa Java. En este ejemplo, se podría modificar la tarifa del alquiler

19
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

y la disponibilidad de los objetos de la clase Vehículo, el resto de los


atributos no se pueden modificar.

3.2 Atributos, métodos e inicialización de objetos


mediante constructores

3.2.1 Atributos

' . .,
-.a- - objete,
Los atributos son los elementos ,que almacenan el estado de un
Se definen de la misma forma que las va ria bles, pero dentro
del bloque de la clase. Exísten dos tipos de atributos: los atributos
de clase y los atributos de objeto. Los atributos de clase existen
siempre, son i11 dependientes de que existan objetos instanciados. Los
atributos de clase se declaran uili:illi:zando static. (Ladrón de
Guevara, J., 2011).

Los atributos se representan como variables en la declaración de la


clase. Dichas variables se llaman campos, y se declaran dentro de la
declaración de una clase, pero fuera de los cuerpos de las declaraciones
de los métodos de la clase.

Cuando cada objeto de una clase mantiene su propia copia de


un atributo, el campo que representa a ese atributo se conoce
también como variable de instancia; cada objeto {instancia) de
la clase tiene una instancia separada de la variable en
memoria. (Deitel, P. y Deitel,, M.,, 2008).

Podemos decir que un objeto tiene atributos que se acarrean con el


objeto, a medida que éste se utiliza en un programa. Estos atributos se
especifican como parte de la clase del objeto. Los atributos se
especifican en las clases mediante campos. Los atributos de objeto
existen durante el ciclo de vida de un objeto, es decir, se crean cuando
se instancia el objeto y se pueden utilizar mientras el objeto exista.

20
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Un atributo se declara con la siguiente sintaxis:

tipo-de-acceso tipo nombre [ = valor-inicial ];

, •, El tipo de acceso puede ser p1iv,ate� prote,cted o public. Los atributos


"'.A· con acceso prívate solo se pueden acceder desde la propia clase que
los define, mientras que los atributos pulblic se pueden acceder
libremente desde otras clases. Los atributos protected se pueden
acceder desde la propia clase que los define y desde sus subclases.

El tipo puede ser un tipo primitivo de Java o el identificador de una


clase. El nombre del atributo debe cumplir las normas de los
identificadores y se recomienda utilizar un sustantivo que sea
representativo de la información que almacena.

La inicialización del objeto es opcional. Se puede declarar un objeto que


será instanciado después o se puede instanciar al momento de su
declaración. (Ladrón de Guevara, J., 2011).

public class Vehiculo {


String matricula;
String marca;
String modelo;
String color;
double tarifa = 0.0;
boolean disponible = false;
}

En el ejemplo anterior, el atributo tarifa se inicializa a cero y disponible


a false. Al resto de atributos no se les asigna un valor inicial. Con esta
declaración, cuando se instancia un objeto de tipo Vehiculo se inicializan

21
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

los valores de los atributos tarifa y disponible. Si no se define el tipo de


acceso, entonces el atributo tiene acceso de tipo public.

La clase Vehiculo se debe declarar con atributos privados. Se utiliza el


tipo de acceso private para que solo los métodos ‘get’ y ‘set’ de la clase
puedan acceder a ellos.

public class Vehiculo {


private String matricula;
private String marca;
private String modelo;
private String color;
private double tarifa = 0.0;
private boolean disponible = false;
}

En esta nueva declaración, todos los atributos tienen acceso private y


solo es posible acceder a ellos desde los métodos de la clase.

3.2.2 Métodos

'' Los métodos son funciones que


determinan el comportamiento de los

�--------------''
objetos. (Ladrón de Guevara, J.1 201JI.).

22
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Un objeto se comporta de una u otra forma dependiendo de los métodos


de la clase a la que pertenece. Todos los objetos de una misma clase
tienen los mismos métodos y el mismo comportamiento. . (Ladrón de
Guevara, J., 2011).

• Existen
"''A· tres tipos de métodos: métodos de consulta, métodos
modificadores y operaciones. Los métodos 'get' se conocen
comúnmente como métodos de acceso o métodos de consulta y
sirven para extraer información de los objetos, mientras que los
métodos 'set' se conocen comúnmente como métodos mutadores o
modificadores y sirven para modificar el valor de los atributos del
objeto y las operaciones definen el comportamiento de un objeto.
(Deitel, P. y Deitel, M.,. 2008} .

En la clase Vehiculo es necesario definir un método ‘get’ para cada uno


de sus atributos: getMatricula(), getMarca(), getModelo(), getColor(),
getTarifa() y getDisponible(). Los métodos ‘set’ solo se definen para los
atributos que pueden ser modificados después de que se ha creado el
objeto. En este caso es necesario definir los métodos setTarifa(double
tarifa) y setDisponible(boolean disponible) para modificar la tarifa del
alquiler del vehículo y su disponibilidad, respectivamente.

Un método ‘get’ se declara public y a continuación se indica el tipo que


devuelve. Es un método de consulta.

Pensemos en el] siguiente ejemplo

23
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

El método getTarifa() devuelve double porque el atributo tarifa es de


tipo double. La lista de parámetros de un método ‘get’ queda vacía. En
el cuerpo del método se utiliza return para devolver el valor
correspondiente al atributo tarifa del objeto, al que se hace referencia
como this.tarifa.

public double getTarifa() {


return this.tarifa;
}

El método getAtributos() es un caso particular de método ‘get’ que


devuelve los valores concatenados de los atributos del objeto.

public class Vehiculo {


private String matricula;
private String marca;
private String modelo;
private String color;
private double tarifa = 0.0;
private boolean disponible = false;

public String getAtributos() {


return "Matrícula: " + this.matricula +
" Modelo: " + this.marca + " " + this.modelo +
" Color: " + this.color +
" Tarifa: " + this.tarifa +
" Disponible: " + this.disponible;
}
}

24
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Un método ‘set’ se declara public y devuelve void. La lista de


parámetros de un método ‘set’ incluye el tipo y el valor a modificar. Es
un método modificador.

Por ejemplo, el método setTarifa(double tarifa) debe modificar el valor


de la tarifa del alquiler almacenado en el objeto. El cuerpo de un método
‘set’ asigna al atributo del objeto el parámetro de la declaración.

public void setTarifa(double tarifa) {


this.tarifa = tarifa;
}

'' Un método de tipo operación es aquel que realiza


un cálculo o modifica el estado de un objeto.
{Ladrón de Guevara, J . r 2011}.

-------------------''
Este tipo de métodos pueden incluir una lista de parámetros y puede
devolver un valor o no. Si el método no devuelve un valor, se declara
void. (Ladrón de Guevara, J., 2011).

Pensemos en ell siguiente ejemplo

La clase Circulo define dos métodos de tipo operación, uno para calcular
el perímetro y otro para calcular el área.

public class Circulo {

25
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

public static final double PI = 3.1415926536;


private double radio;

public Circulo(double radio) {


this.radio = radio;
}
public double getRadio() {
return this.radio;
}
public double calcularPerimetro() {
return 2 * PI * this.radio;
}
public double calcularArea() {
return PI * this.radio * this.radio;
}
}

En el ejemplo anterior, los métodos calcularPerimetro() y calcularArea()


devuelven un valor double y ninguno de ellos recibe parámetros.

Declaración de métodos

La declaración de un método indica si el método necesita o no


argumentos. Los métodos ‘get’ no tienen argumentos y devuelven un
valor, los métodos ‘set’ necesitan un argumento para indicar el valor del
atributo que van a modificar.

El método setTarifa(double tarifa) tiene un argumento. El nombre de


este parámetro es tarifa y su tipo es double. Un método se declara con
la siguiente sintaxis:

26
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

tipo-de-acceso tipo nombre (lista-parametros);

El tipo de acceso puede ser private o public. Si el método devuelve un


valor se debe indicar su tipo. Este valor puede ser de un tipo primitivo
de Java o el identificador de una clase. Si el método no devuelve un
valor entonces el tipo es void. El nombre del atributo debe cumplir las
normas de los identificadores y se recomienda utilizar un verbo que sea
representativo de la acción que realiza el método. La lista de parámetros
indica los valores que requiere el método para su ejecución. (Ladrón de
Guevara, J., 2011).

La lista de parámetros se declara con la siguiente sintaxis:

tipo nombre [,tipo nombre ]

La lista de parámetros puede declarar una o más variables separadas


por una coma. El tipo puede ser un tipo primitivo de Java o el
identificador de una clase. El nombre del parámetro debe cumplir las
normas de los identificadores y se recomienda utilizar un sustantivo que
sea representativo de la información que almacena.

Dentro de una clase los métodos se identifican unívocamente por su


nombre y su lista de parámetros. (Ladrón de Guevara, J., 2011).

Invocación de métodos

-:a- clase
Un métode se puede invocar dentro o fuera de, la
donde se ha declarado. Si el método se invoca
dentro de la clase, basta con indicar su nombre. Si el
método se invoca fuera de la clase entonces se debe
indicar el nombre del objeto y el nombre del método.

27
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Pensemos en ell siguiente ejemplo

El método getAtributos() de la clase Vehiculo se podría codificar


invocando a los métodos getMatricula(), getMarca(), getModelo(),
getTarifa() y getDisponible(). En este caso, el método getAtributos()
utiliza los métodos ‘get’ de la clase en vez de hacer referencia directa a
los atributos del objeto.

public class Vehiculo {


private String matricula;
private String marca;
private String modelo;
private String color;
private double tarifa = 0.0;
private boolean disponible = false;

public String getAtributos() {


return "Matrícula: " + getMatricula() + " " +
" Modelo: " + getMarca() + " " + getModelo() +
" Color: " + getColor() +
" Tarifa: " + getTarifa() +
" Disponible: " + getDisponible;
}
}

28
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Si el método getAtributos() se va a invocar desde fuera de la clase,


entonces es necesario indicar el nombre del objeto y el nombre del
método.

En este ejemplo, el método getAtributos() se utiliza para mostrar los


valores almacenados en el objeto vehiculo1.

Vehiculo vehiculo1 = new Vehiculo("4050 ABJ",


"VW",
"GTI",
"Blanco",
100.0);
// invocación del método getAtributos para mostrar
// los datos del objeto vehiculo1

System.out.print("Datos del vehículo " +


vehiculo1.getAtributos());

Si el método es estático, entonces es necesario indicar el nombre de la


clase y el nombre del método.

Pensemos en el] siguiente ejemplo

La clase Math incluye el método sqr para calcular el cuadrado de un


número. En este caso, es necesario indicar el nombre de la clase y el
nombre del método que se invoca.

int numero = 4;
// invocación del método sqr de la clase Math
29
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

System.out.print("El cuadrado del número es: " +


Math.sqr(numero));

Cuando se invoca a un método ocurre lo siguiente:


En la línea de código del programa donde se invoca al
1 método se calculan los valores de los argumentos.

• • Los parámetros se inicializan con los valores de los


a rgurnentos.
Se ejecuta el bloque código del método hasta que se
alcanza return o se llega al final del bloque.
Si el método devuelve un valor; se sustituye la invocación
por el valor devuelto.
La ejecución del programa continúa en la siguiente
instrucción donde se invocó el método.

El método main()

RECORDEMOS:

El método main es el punto de inicio


de toda aplicación en Java, y debe
empezar con:

public staticvoid main(String


ar s ] )

Es un método estático, por lo que no podrá utilizar atributos o métodos


dinámicos de la clase, público y no devuelve un valor de retorno. Los
parámetros String[ ] args se refieren a la línea de comandos de la
aplicación. Los argumentos del método main son un array de caracteres
donde cada elemento del array es un parámetro enviado por el usuario
30
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

desde la línea de comandos. A este argumento se le llama comúnmente


args. (Sánchez, J., 2004).

Su sintaxis es:

public static void main( String[] args ) {


...instruccionesejecutables....
}

public class MisVehiculos {


public static void main(String args[]) {
// este programa crea un objeto de la clase vehiculo y
// muestra sus atributos
// instanciación del objeto vehiculo1
Vehiculo vehiculo1 = new Vehiculo("4050 ABJ",
"VW",
"GTI",
"Blanco",
100.0);
// invocación del método getAtributos() para mostrar
// los datos del objeto vehiculo1
System.out.print("Datos del vehículo " +
vehiculo1.getAtributos());
}
}

31
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Parámetros y argumentos

'' Los parámetros de un método definen la

,,
cantidad y el tipo de dato de los valores
que recibe un método para su ejecución.
(Ladrón de Guevara, JI., 2011) .
.___

'' Los argumentos son los valores que se


pasan a un método durante su

�--------------''
invocación. (Ladrón de Guevara, J., 2011).

El método recibe los argumentos correspondientes a los parámetros con


los que ha sido declarado. Un método puede tener tantos parámetros
como sea necesario. Durante la invocación de un método es necesario
que el número y el tipo de argumentos coincidan con el número y el tipo
de parámetros declarados en la cabecera del método. (Ladrón de
Guevara, J., 2011).

La lista de parámetros de la cabecera de un método se define con la


siguiente sintaxis:

tipo nombre [,tipo nombre ]

Pensemos en el siguiente ejemplo

32
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

El método constructor de la clase Vehiculo tiene cinco parámetros, la


matrícula, la marca, el modelo, el color del vehículo y su tarifa. Los
parámetros matricula, marca, modelo y color son de tipo String, tarifa
es de tipo double.

public Vehiculo(String matricula,


String marca,
String modelo,
String color,
double tarifa) {
}

El método setTarifa(double tarifa) de la clase Vehiculo tiene un


parámetro tarifa de tipo double.

public void setTarifa(double tarifa) {


}
Paso de parámetros


l

Existen dos formas de pasar argumentos en las llamadas a


métodos son el paso por valor y el paso por referencia. Cuando se
pasa un argumento por valor, se pasa una copia del valor del argumento al
método que se llamo. Este método trabaja exclusivamente con la copia. Las
modificaciones a la copia del método que se llamo no afectan el valor de la
variable original en el método que hizo la llamada. Cuando se pasa un
argumento por referencia, el método que se llamo puede acceder al valor
del argumento en el método que hizo la llamada directamente, y puede
modificar esos datos si es necesario.

33
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

• , A diferencia de otros lenguajes, Java no permite a los


'- aS programadores elegir el paso por valor o el paso por

u e ....1
referencia; todos los argumentos se pasan por valor. Una
llamada a un método puede pasar dos tipos de valores:
copias de valores primitivos y copias de referencias a
objetos. (Deitel, P. y Deitel, M., 2008).

Peusernos en el siguiente ejemplo

El método recibirVehiculoAlquilado(Vehiculo v) recibe el parámetro v de


tipo Vehiculo. Si el método modifica el estado del objeto v, en realidad
modifica el estado del objeto original vehiculo1 que recibe como
argumento.

public void recibirVehiculoAlquilado (Vehiculo v) {


v.setDisponible(true);
}

El valor de retorno

Los métodos pueden devolver valores básicos (int, short, double, char,
String o un tipo de objeto). En todos los casos es el comando return el
que realiza esta labor.Los métodos que no devuelven un valor se
declaran void. Los métodos ‘set’ devuelven void, mientras que los
métodos ‘get’ devuelven el tipo correspondiente al atributo al que hacen
referencia. (Sánchez, J., 2004).

Los métodos ‘set’ devuelven void porque son métodos modificadores,


realizan operaciones y cálculos para modificar el estado de los objetos.
34
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Los métodos ‘get’, en cambio, son métodos de consulta y devuelven los


valores almacenados en los atributos de un objeto. (Ladrón de Guevara,
J., 2011).

Pensemos en el siguiente ejemplo

El método setTarifa(double tarifa) recibe el parámetro tarifa de tipo


double y devuelve void.

public void setTarifa(double tarifa) {


this.tarifa = tarifa;
}

El método getTarifa() devuelve el tipo double correspondiente al atributo


tarifa. El valor del atributo se devuelve con return.

public double getTarifa() {


return this.tarifa;
}

Las variables locales de un método

Las variables que se declaran en el cuerpo de un método específico se


conocen como variables locales, y sólo se pueden utilizar en ese método
desde la línea de su declaración en el método, hasta la llave derecha de
cierre de la declaración del método. Cuando termina ese método, se
pierden los valores de sus variables locales. Estas variables locales no se

35
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

inicializan de manera predeterminada. La declaración de una variable


local debe aparecer antes de que la variable se utilice en ese método.
Una variable local no puede utilizarse fuera del método en el que se
declara. (Deitel, P. y Deitel, M., 2008).

Pensemos en el siguiente ejemplo

El método getAtributos() no utiliza variables locales. El valor de retorno


se calcula al momento de hacer return.

public String getAtributos() {


return "Matrícula: " + getMatricula() + " " +
" Modelo: " + getMarca() + " " + getModelo() +
" Color: " + getColor() +
" Tarifa: " + getTarifa() +
" Disponible: " + getDisponible;
}

Este método se podría codificar declarando la variable local atributos de


tipo String para almacenar el valor de retorno. Esta variable se declara
dentro del cuerpo del método.

public String getAtributos() {


String atributos;
atributos = "Matrícula: " + getMatricula() + " " +
" Modelo: " + getMarca() + " " + getModelo() +
" Color: " + getColor() +
" Tarifa: " + getTarifa() +

36
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

" Disponible: " + getDisponible;


return atributos;
}

Los dos métodos son equivalentes, pero el primero es más claro porque
evita el uso de una variable local que no es necesaria.

Sobrecarga de métodos

• �
(.
aS
1
u e ...• Una propiedad de la fQQ. es el polimorfismo. Java
posee esa propiedad ya que admite sobrecargar los
métodos. Esto significa crear distintas variantes del mismo
método. (Sánchez, J., 2004), es decir, pueden declararse
métodos con el mismo nombre en la misma clase, siempre y
cuando tengan distintos conjuntos de parámetros
(determinados en base al número, tipos y orden de los
parámetros). A esto se le conoce como sobrecarga de
métodos. Cuando se hace una llamada a un método
sobrecargado, el compilador de Java selecciona el método
apropiado mediante un análisis del número, tipos y orden de
los argumentos en la llamada. (Deitel, P. y Deitel, M., 2008).

La sobrecarga de métodos es útíl para que el mismo método opere


con parámetros de distinto tipo o que u11 mismo método reciba u 11a
lista de parámetros diferente. Esto quiere decir que puede haber dos
métodos con el mismo nombre que rea licen dos funciones distintas. La
diferencia entre los métodos sobrecargados está en su declaración.
(Ladrón de Gueva ra, J., 2011).

Pensemos en el siguiente ejemplo

37
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

El método getAtributos() se puede sobrecargar para devolver los


atributos de un vehículo y para mostrar la tarifa reducida al aplicar el
porcentaje de descuento recibido como argumento.

public String getAtributos() {


return "Matrícula: " + getMatricula() + " " +
" Modelo: " + getMarca() + " " + getModelo() +
" Color: " + getColor() +
" Tarifa: " + getTarifa() +
" Disponible: " + getDisponible;
}
public String getAtributos(double porcentajeDescuento) {
return "Matrícula: " + getMatricula() + " " +
" Modelo: " + getMarca() + " " + getModelo() +
" Color: " + getColor() + " Tarifa: " +
(100.0 – porcentajeDescuento)/100*tarifa +
" Disponible: " + getDisponible;
}
En este ejemplo los dos métodos se diferencian por la declaración de sus
parámetros y ambos métodos realizan operaciones distintas.

3.2.3 Inicialización de objetos mediante constructores

Recordemos: que un
objeto es una instancia de
clase y que un objeto se
crea utilizando el llamado:
constructor de la clase.
(Sánchez, J., 2004).

38
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

El constructor es el método que permite iniciar el objeto.

'' Un constructor no es más que un


método que tiene el mismo nombre
que la clase. (Sánchez, J '}' 2004) .
,,
.._

Con lo cual para crear un constructor basta definir un método en el


código de la clase que tenga el mismo nombre que la clase. (Sánchez,
J., 2004).

Para crear un objeto se utiliza el operador new. Si no se ha definido un


método constructor para la clase, entonces el objeto se instancia
indicando el nombre de la clase y a continuación un paréntesis abierto y
otro cerrado. Si ya se ha definido un método constructor, entonces no
es posible instanciar un objeto utilizando el constructor por defecto.
Cuando se invoca al constructor por defecto se asigna un espacio de
memoria para el nuevo objeto y sus atributos se inicializan a los valores
por defecto correspondientes a su tipo. Los números enteros se
inicializan a cero, los números reales a 0.0, los valores lógicos a false,
los caracteres se inicializan a \u0000 y las referencias a null.

Un constructor puede usarse para inicializar un objeto die


una clase, a la hora de crear este objeto. En una clase se
puede·n definir uno o más métodos constructores para
inicializar los a'tl"ibutos de un objeto con valores
distintos de· los. valores poli defecto de Java. Para
instanciar un objeto es necesario indicar los vallores iniciales
die sus atributos cuando se ejecuta el método constructor.
(Ladrón de Guevara, J ·r 2011).

39
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

En la clase Vehiculo se ha definido un método constructor que inicializa


los atributos matricula, marca, modelo, color y tarifa.

public class Vehiculo {

String matricula;
String marca;
String modelo;
String color;
double tarifa;
boolean disponible;

// El método constructor de la clase Vehiculo


public Vehiculo(String matricula,
String marca,
String modelo,
String color,
double tarifa) {
this.matricula = matricula;
this.marca = marca;
this.modelo = modelo;
this.color = color;
this.tarifa = tarifa;
this.disponible = false;
}
}

this.matricula se refiere al atributo del objeto

matricula se refiere al parámetro del método

40
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

A veces es necesario contar con diferentes métodos constructores con


distintos parámetros. Por ejemplo, se podría crear un objeto de la clase
Vehiculo sin conocer la tarifa de alquiler. El método constructor debería
inicializar la tarifa a cero.

public Vehiculo(String matricula,


String marca,
String modelo,
String color) {
this.matricula = matricula;
this.marca = marca;
this.modelo = modelo;
this.color = color;
this.tarifa = 0.0;
this.disponible = false;
}

Cuando se definen dos o más métodos constructores para la clase


Vehiculo, se dice que el método constructor de la clase está
sobrecargado. En este ejemplo la diferencia entre los dos métodos es
que el primero recibe cuatro parámetros e inicializa la tarifa a cero, el
segundo recibe cinco parámetros, uno de ellos para inicializar la tarifa
del vehículo.

public Vehiculo(String matricula,


String marca,
String modelo,
String color)
public Vehiculo(String matricula,
String marca,

41
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

String modelo,
String color,
double tarifa)

La clase Vehiculo con dos métodos constructores.

public class Vehiculo {


private String matricula;
private String marca;
private String modelo;
private String color;
private double tarifa;
private boolean disponible;

public Vehiculo(String matricula,


String marca,
String modelo,
String color) {
this.matricula = matricula;
this.marca = marca;
this.modelo = modelo;
this.color = color;
this.tarifa = 0.0;
this.disponible = false;
}
public Vehiculo(String matricula,
String marca,
String modelo,
String color,
double tarifa) {
this.matricula = matricula;

42
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

this.marca = marca;
this.modelo = modelo;
this.color = color;
this.tarifa = tarifa;
this.disponible = false;
}
}

. �¡�. Java diferencia los métodos sobrecargados por el número y


el tipo de los argumentos que tiene el método.

En la clase Vehiculo el número de parámetros de los dos métodos


constructores es diferente.

Cuando se invoca al método constructor de la clase con el operador


new, Java selecciona el método que debe ejecutar por el número y el
tipo de argumentos que recibe.

Creación de objetos de la clase Vehiculo utilizando ambos métodos


constructores.

Vehiculo vehiculo1 = new Vehiculo("4050 ABJ",


"VW",
"GTI",
"Blanco",
100.0);
Vehiculo vehiculo2 = new Vehiculo("2345 JVM",
"SEAT",
"León",
"Negro");

43
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

El objeto vehiculo1 se instancia ejecutando constructor de cinco


parámetros, mientras que vehiculo2 se instancia ejecutando el
constructor de cuatro parámetros.

Destrucción de objetos

e• En Java hay un recolector de basura (garbage collector) que


se encarga de gestionar los objetos que se dejan de usar y de
eliminarles de memoria. Este proceso es automático e
impredecible y trabajo en un hilo (thread) de baja prioridad.

Por lo general ese proceso de recolección de basura, trabaja cuando


detecta que un objeto hace demasiado tiempo que no se utiliza en un
programa. Esta eliminación depende de la máquina virtual, en casi toda
la recolección se realiza periódicamente en un determinado lapso de
tiempo.

• La implantación de máquina virtual conocida como HotSpotl


e suele hacer la recolección mucho más a menudo. Se puede forzar
la eliminación de un objeto asignándole el valor null, pero con null
no se libera inmediatamente la memoria, sino que pasará un
cierto tiempo (impredecible, por otro lado) hasta su total
destrucción. (Sánchez, J., 2004).

Ahora después de todo lo que has aprendido, es momento de resolver la


actividad complementaria 3.1 que te permitirá reforzar los aprendizajes
adquiridos hasta el momento.

4C Acti idad Com

44
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Para posteriormente realizar la actividad de aprendizaje 3.1


correspondiente a este tema.

] Wi Actividad de A rendiza·e 3.1

3.3 Clases y objetos: un análisis más detallado

3.3.1 Composición

Una clase puede tener referencias a objetos


de otras clases como miembros. A dicha
capacidad se le conoce como composición y
algunas veces como relación "tiene un",
(Deitel., P. y Deitel, M., 2008). ''

La relación “tiene un” define la composición.

'' La composición es una forma de reutilización


de software, en donde una clase tiene como

�--------------''
miembros referencias a objetos de otras
clases. (Deitel, P. y Deitel, M.1 2008).

45
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

t
....._.,. La composición consiste en crear una cllase nueva
agrupando objetos de clases que ya existen. Una
composición aqrupa uno o más objetos para construir una
clase, de manera que las instancias de esta nueva clase
contienen uno o más objetos de otras clases.
Normalmente los objetos contenidos se declaran con
acceso private y se inicializan en el constructor de la clase.
(Ladrón de Guevara, J «r 2011).

La clase Vehiculo está compuesta de objetos de tipo String. Los


atributos matricula, marca, modelo y color en realidad son objetos de la
clase String.

public class Vehiculo {


private String matricula;
private String marca;
private String modelo;
private String color;
private double tarifa;
private boolean disponible;

// se omiten los métodos ‘get’ y ‘set’ de la clase


public Vehiculo(String matricula,
String marca,
String modelo,
String color,
double tarifa) {
this.matricula = matricula;
this.marca = marca;
this.modelo = modelo;
this.color = color;

46
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

this.tarifa = tarifa;
this.disponible = false;
}
}

Para hacer una composición utilizando objetos de una clase diferente de


String, lo primero es definir una nueva clase. La clase Cliente formará
junto con Vehiculo la clase VehiculoAlquilado utilizando la composición.

public class Cliente {


private String nif;
private String nombre;
private String apellidos;

// se omiten los métodos ‘get’ y ‘set’ de la clase

public Cliente(String nif, String nombre, String apellidos) {


this.nif = nif;
this.nombre = nombre;
this.apellidos = apellidos;
}
}

Ahora se define una composición que declara un objeto de la clase


Vehiculo y un objeto de la clase Cliente. La nueva clase
VehiculoAlquilado relaciona una instancia de la clase Vehiculo con una
instancia de la clase Cliente y crea objetos que almacenan relaciones
entre clientes y vehículos de alquiler.

47
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Esto significa que para instanciar un objeto de la clase VehiculoAlquilado


es necesario tener referencias a objetos de las clases Cliente y Vehiculo.

public class VehiculoAlquilado {


private Cliente cliente;
private Vehiculo vehiculo;
private int diaAlquiler;
private int mesAlquiler;
private int añoAlquiler;
private int totalDiasAlquiler;
public VehiculoAlquilado(Cliente cliente,
Vehiculo vehiculo,
int diaAlquiler,
int mesAlquiler,
int añoAlquiler,
int totalDiasAlquiler) {
this.cliente = cliente;
this.vehiculo = vehiculo;
this.diaAlquiler = diaAlquiler;
this.mesAlquiler = mesAlquiler;
this.añoAlquiler = añoAlquiler;
this.totalDiasAlquiler = totalDiasAlquiler;
}
// los métodos ‘get’ de los atributos de tipo objeto
// Cliente y Vehiculo

public Cliente getCliente() {


return this.cliente;
}

public Vehiculo getVehiculo() {

48
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

return this.vehiculo;
}
}

La clase VehiculoAlquilado contiene un objeto de la clase Cliente, un


objeto de la clase Vehiculo y atributos de tipo int para almacenar el día,
el mes y el año de la fecha del alquiler del vehículo y el total de días de
alquiler. La clase contenedora es VehiculoAlquilado y las clases
contenidas son Cliente y Vehiculo.

El programa principal donde se crean los objetos de las clases Cliente,


Vehiculo y VehiculoAlquilado.

public class MisVehiculos {


public static void main(String args[]) {
// se crean dos instancias de la clase Vehiculo
Vehiculo vehiculo1 = new Vehiculo("4050 ABJ",
"VW",
"GTI",
"Blanco",
100.0);
Vehiculo vehiculo2 = new Vehiculo("2345 JVM",
"SEAT",
"León",
"Negro",
80.0);

// se crea una instancia de la clase Cliente


Cliente cliente1 = new Cliente("30435624X", "Juan", "Pérez");

49
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

// se crea una instancia de la clase VehiculoAlquilado //que


relaciona al cliente1 con el vehiculo1, el //vehículo se alquila con
fecha 11/11/2011 durante 2 //días
VehiculoAlquilado alquiler1 = new VehiculoAlquilado
(cliente1,
vehiculo1,
11,
11,
2011,
2);
}
}

. .�. En una relación de composición, hay atributos de la clase


contenedora que son objetos que pertenecen a la clase
contenida. Un objeto de la clase contenedora puede
acceder a los métodos públicos de las clases contenidas.
(Ladrón de Guevara, J . r 2011).

En la declaración de la clase VehiculoAlquilado se han definido dos


métodos ‘get’ para los atributos de tipo objeto. El método getCliente()
devuelve un objeto de tipo Cliente y el método getVehiculo() devuelve
un objeto de tipo Vehiculo.

Pensemos en el siguiente ejemplo

El objeto alquiler1 de la clase VehiculoAlquilado puede acceder a los


métodos públicos de su propia clase y de las clases Cliente y Vehiculo.

50
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Un objeto de la clase VehiculoAlquilado puede ejecutar métodos ‘get’


para mostrar la información de los objetos que contiene.

alquiler1.getCliente().getNIF();
alquiler1.getVehiculo().getMatricula();

Los datos del cliente y del vehículo alquilado:

System.out.println("Vehículo alquilado");
System.out.println("Cliente : " +
alquiler1.getCliente().getNIF() + " " +
alquiler1.getCliente().getNombre() + " " +
alquiler1.getCliente().getApellidos());
System.out.println("Vehículo: " +
alquiler1.getVehiculo().getMatricula());

La salida por la consola:

Vehículo alquilado
Cliente : 30435624X Juan Pérez
Vehículo: 4050 ABJ

51
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
de Estado de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

3.3.2 Herencia

Recordemos que...
La herencia, que es una forma de reutilización
de software en la que se crea una nul!llil clase
absorbiendo los mierrbros de una clase
existente, y se mejoran con nuellil5
capacidades, o con modificaciones en las
capacidadesya existentes.

Con la herencia, los programadores ahorran tiempo durante el


desarrollo, al reutilizar software probado y depurado de alta calidad.
Esto también aumenta la probabilidad de que un sistema se implemente
con efectividad. (Deitel, P. y Deitel, M., 2008).

La herencia es un mecanismo muy importante porque permite la


reutilización del código. La herencia es la capacidad que tienen los
lenguajes orientados a objetos para extender clases. Esto produce una
nueva clase que hereda el comportamiento y los atributos de la clase
que ha sido extendida. La clase original se denomina clase base o
superclase, la nueva clase se denomina clase derivada o subclase.
(Ladrón de Guevara, J., 2011).

52
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Extensión de clases

La capacldad para extender clases se llama

,,
herencia porque la nueva clase hereda todos los
atributos y los métodos de la superclase a la que
extiende. (Ladrón de Guevara, L, 20ll.1).
,__

Al crear una clase, en vez de declarar miembros completamente nuevos,


el programador puede designar que la nueva clase herede los miembros
de una clase existente. Esta clase existente se conoce como superclase,
y la nueva clase se conoce como subclase. Cada subclase puede
convertirse en la superclase de futuras subclases. (Deitel, P. y Deitel,
M., 2008).

Podernos decir entonces que una subclase es una


especialización de la superclase que añade nuevos
atributos y métodos que le dan un comportamiento
diferente al de la superclase. (Ladrón de Guevara, J.,
2011).

Una subclase es más específica que su superclase y representa



e a un grupo más especializado de objetos. Generalmente, la subclase
exhibe los comportamientos de su superclase junto con

ue ..1
a comportamientos adicionales específicos de esta subclase. Es por ello
.. que a la herencia se le conoce algunas veces como
especialización. La superclase directa es la superclase a partir de la
cual la subclase hereda en forma explícita. Una superclase
indirecta es cualquier clase arriba de la superclase directa en
la jerarquía de clases, la cual define las relaciones de herencia
entre las clases. {Deitel, P. y Deitel, M., 2008).

53
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Pensemos en ell siguiente ejemplo

Suponga que se desea diseñar una aplicación para gestionar una


empresa de alquiler de vehículos de tipo turismo, deportivo y
furgonetas. La clase Vehiculo define los atributos y los métodos de todos
los vehículos de la empresa de alquiler. Esto no es suficiente porque hay
distintos tipos de vehículos, de manera que es necesario definir
subclases para cada tipo de vehículo: turismo, deportivo y furgoneta. En
este ejemplo, la superclase es Vehiculo y las subclases son Turismo,
Deportivo y Furgoneta. Todas las subclases son vehículos, un turismo,
un deportivo y una furgoneta sonvehículos, pero cada uno de ellos tiene
características propias que le hacen diferente del resto. Para un turismo
interesa saber el número de puertas y el tipo de cambio de marcha,
para un deportivo interesa saber su cilindrada y para una furgoneta su
capacidad de carga en kilos y el volumen en metros cúbicos.

La extensión de una clase tiene la siguiente sintaxis:

public class nombre-subclase extends nombre-superclase {


}

La declaración de la clase Turismo como subclase de Vehiculo:

public class Turismo extends Vehiculo {


}

54
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Se muestra la relación de herencia que existe entre la superclase


Vehiculo y las subclases Turismo, Deportivo y Furgoneta.

Las subclases Turismo, Deportivo y Furgoneta son especializaciones de


la clase Vehiculo. En una relación de herencia, las subclases heredan los
atributos y los métodos de la superclase. En la declaración de las
subclases se indica la clase a la que extienden, en este caso, Vehiculo.

public class Turismo extends Vehiculo {


}
public class Deportivo extends Vehiculo {
}
public class Furgoneta extends Vehiculo {
}

La declaración de la superclase Vehiculo.

public class Vehiculo {


private String matricula;
private String marca;
private String modelo;
private String color;
private double tarifa = 0.0;
private boolean disponible;
// se omiten los métodos ‘get’ y ‘set’ de la superclase //Vehiculo,excepto
el método getAtributos()
public Vehiculo(String matricula,
String marca,
String modelo,
String color,
double tarifa) {

55
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

this.matricula = matricula;
this.marca = marca;
this.modelo = modelo;
this.color = color;
this.tarifa = tarifa;
this.disponible = false;
}
public String getAtributos() {
return "Matrícula: " + this.matricula +
" Modelo: " + this.marca + " " + this.modelo +
" Color: " + this.color +
" Tarifa: " + this.tarifa +
" Disponible: " + this.disponible;
}
}

La declaración de la subclase Turismo.

public class Turismo extends Vehiculo {


private int puertas;
private boolean marchaAutomatica;

public Turismo(String matricula,


String marca,
String modelo,
String color,
double tarifa,
int puertas,
boolean marchaAutomatica) {
super(matricula, marca, modelo, color, tarifa);

56
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

this.puertas = puertas;
this.marchaAutomatica = marchaAutomatica;
}

// métodos ‘get’ de la subclase Turismo


public int getPuertas() {
return this.puertas;
}

public boolean getMarchaAutomatica() {


return this.marchaAutomatica;
}

public String getAtributos() {


return super.getAtributos() +
" Puertas: " + this.puertas +
" Marcha automática: " + this.marchaAutomatica;
}
}

La declaración de la subclase Deportivo.

public class Deportivo extends Vehiculo {


private int cilindrada;
public Deportivo(String matricula,
String marca,
String modelo,
String color,
double tarifa,
int cilindrada) {
super(matricula, marca, modelo, color, tarifa);

57
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

this.cilindrada = cilindrada;
}

// métodos ‘get’ de la subclase Deportivo


public int getCilindrada() {
return this. cilindrada;
}

public String getAtributos() {


return super.getAtributos() +
" Cilindrada (cm3): " + this.cilindrada;
}
}

La declaración de la subclase Furgoneta.

public class Furgoneta extends Vehiculo {


private int carga;
private int volumen;
public Furgoneta(String matricula,
String marca,
String modelo,
String color,
double tarifa,
int carga,
int volumen) {
super(matricula, marca, modelo, color, tarifa);
this.carga = carga;
this.volumen = volumen;
}

58
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

// métodos ‘get’ de la subclase Furgoneta


public int getCarga() {
return this.carga;
}
public int getVolumen() {
return this.volumen;
}
public String getAtributos() {
return super.getAtributos() +
" Carga (kg): " + this.carga +
" Volumen (m3): " + this.volumen;
}
}

Polimorfismo


i.
a 1
u e....
El polimorfismo permite programar en forma
general, en vez de programar en forma específica. En
especial, permite escribir programas que procesen objetos
que compartan la misma superclase en una jerarquía de
clases, como si todos fueran objetos de la superclase; esto
puede simplificar la programación. Con el polimorfismo
se puede diseñar e implementar sistemas que
puedan extenderse con facilidad; pueden agregarse
nuevas clases con sólo modificar un poco (o nada) las
porciones generales de la aplicación, siempre y cuando las
nuevas clases sean parte de la jerarquía de herencia que la
aplicación procesa en forma genérica. Las únicas partes de
un programa que deben alterarse para dar cabida a las
nuevas clases son las que requieren un conocimiento
directo de las nuevas clases que el programador agregará
a la jerarquía. (Deitel, P. y Deitel, M., 2008).

59
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Las clases Turismo, Deportivo y Furgoneta extienden a la clase Vehiculo.


Estas clases heredan los atributos de Vehiculo y cada subclase añade
atributos y métodos propios. La clase Turismo añade los atributos
puertas, marchaAutomatica y los métodos getPuertas() y
getMarchaAutomatica(). La clase Deportivo añade el atributo cilindrada
y el método getCilindrada().La clase Furgoneta añade los atributos
carga, volumen y los métodos getCarga() y getVolumen().Además, cada
subclase declara un método getAtributos(). Este método también se ha
declarado en la superclase. Esto significa que el método getAtributos()
de las subclases sobre escribe al método de la superclase. Dependiendo
del tipo característica de los lenguajes de programación orientados a
objetos se conoce como polimorfismo de objeto que invoque el método,
se ejecuta el método correspondiente a la clase del objeto.

Pensemos en el siguiente ejemplo

Si el método es invocado por un objeto de la clase Turismo, entonces se


ejecuta el código del método getAtributos() de la clase Turismo.

Los métodos getAtributos() de las subclases modifican el


comportamiento del método getAtributos() de la superclase. En cada
método se invoca a super.getAtributos() para que muestre los atributos
de un vehículo y después se muestran los atributos propios de la
subclase. Los métodos getAtributos() de las subclases sobrescriben el
método getAtributos() de la superclase. Esta Un objeto de las subclases
Turismo, Deportivo o Furgoneta puede invocar los métodos

60
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

getMatricula(), getMarca(), getModelo(), getColor(), getTarifa(),


getDisponible(), setTarifa() y setDisponible() de la superclase Vehiculo.

El siguiente ejemplo muestra el comportamiento de los métodos sobre


escritos en las subclases.

// creación de instancias de la superclase Vehiculo y


// de las subclases Turismo, Deportivo y Furgoneta

Vehiculo miVehiculo = new Vehiculo("4050 ABJ",


"VW", "GTI",
"Blanco",
100.0);

Turismo miTurismo = new Turismo("4060 TUR",


"Skoda", "Fabia",
"Blanco",
90.0,
2,
false);

Deportivo miDeportivo = new Deportivo("4070 DEP",


"Ford”, "Mustang",
"Rojo",
150.0,
2000);

Furgoneta miFurgoneta = new Furgoneta("4080 FUR",


"Fiat", "Ducato",
"Azul",
80.0,
1200,
61
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

8);

// invocación del método getAtributos() de cada objeto


System.out.print("Vehículo : " +
miVehiculo.getAtributos());

// miVehiculo es una instancia de la clase Vehiculo, se


// invoca el método getAtributos() de Vehiculo
Vehículo : Matrícula: 4050 ABJ Modelo: VW GTI
Color: Blanco Tarifa: 100.0 Disponible: false

System.out.print("Turismo " + miTurismo.getAtributos());

// miTurismo es una instancia de la clase Turismo, se


// invoca el método getAtributos() de Turismo
Turismo Matrícula: 4060 TUR Modelo: Skoda Fabia
Color: Blanco Tarifa: 90.0 Disponible: false Puertas: 2
Marcha automática: false

System.out.print("Deportivo " +
miDeportivo.getAtributos());

// miDeportivo es una instancia de la clase Deportivo,


// se invoca el método getAtributos() de Deportivo
Deportivo Matrícula: 4070 DEP Modelo: Ford Mustang
Color: Rojo Tarifa: 150.0 Disponible: false
Cilindrada (cm3): 2000

System.out.print("Furgoneta " +
miFurgoneta.getAtributos());

62
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

// miFurgoneta es una instancia de la clase Furgoneta,


// se invoca el método getAtributos() de Furgoneta
Furgoneta Matrícula: 4080 FUR Modelo: Fiat Ducato
Color: Azul Tarifa: 80.0 Disponible: false
Carga (kg): 1200 Volumen (m3): 8

// el objeto miTurismo pertenece a la subclase Turismo,


// es un vehículo y puede invocar a los métodos de la
// superclase Vehiculo: getMatricula(),
// getMarca() y getModelo()
System.out.print("Turismo : " +
miTurismo.getMatricula() + " " +
miTurismo.getMarca() + " " +
miTurismo.getModelo());
Turismo : 4060 TUR Skoda Fabia

3.3.3 Compatibilidad de tipos

En una rellación de tipo herencia. un objeto de la


superclase puede almacenar un objeto de cualquiera
de sus subclases.

Por ejemplo, un objeto de la clase Vehiculo puede almacenar un objeto


de la clase Turismo, Deportivo o Furgoneta. Dicho de otro modo,
cualquier referencia de la clase Vehiculo puede contener una instancia
de la clase Vehiculo o bien una instancia de las subclases Turismo,
Deportivo o Furgoneta.

Esto significa que la clase base o superclase es compatible con los tipos
que derivan de ella, pero no al revés. Una referencia de la clase Turismo
solo puede almacenar una instancia de Turismo, nunca una instancia de
la superclase Vehiculo.

63
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Conversión ascendente de tipos

Cuando un objeto se asigna a una referencia distinta


de la clase a lla que pertenece, se hace una conversión
de tipos. Java permite asignar un objeto a una
referencia de lla clase base.

Pensernos en el siguiente ejemplo

Si un objeto de la clase Turismo se asigna a una referencia de la clase


Vehiculo, se hace una conversión ascendente de tipos, denominada
“upcasting”. La conversión ascendente de tipos siempre se puede
realizar.

Vehiculo miVehiculo = new Turismo("4090 TUR",


"Skoda", "Fabia",
"Negro",
90.0,
2,
true);
System.out.println("Vehículo " +
miVehiculo.getAtributos());

En este ejemplo se crea un objeto de la clase base Vehiculo utilizando el


constructor de la clase derivada Turismo. Dado que la instancia es de
tipo Turismo, al invocar al método getAtributos() muestra los atributos
de un turismo.

64
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Vehículo Matrícula: 4090 TUR Modelo: Skoda Fabia Color:


Negro Tarifa: 90.0 Disponible: false Puertas: 2
Marcha automática: true

A la referencia miVehiculo también se le puede asignar la referencia de


na instancia existente de la clase Turismo.

Turismo miTurismo = new Turismo("4100 TUR",


"VW", "Polo",
"Rojo",
80.0,
2,
false);
Vehiculo miVehiculo = miTurismo;
System.out.println("Vehículo " +
miVehiculo.getAtributos());

De nuevo, el método getAtributos() muestra los atributos de un


turismo:

Vehículo Matrícula: 4100 TUR Modelo: VW Polo Color:


Rojo Tarifa: 80.0 Disponible: false Puertas: 2 Marcha
automática: false

65
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Conversión descendente de tipos

Si una instancia de la clase base Vehiculo almacena una referencia a un


objeto de una de sus clases derivadas, entonces es posible hacer una
conversión descendente de tipos, denominada “downcasting”.

El objeto miVehiculo de la clase base Vehiculo almacena una referencia


a un objeto de la clase derivada Turismo. En este caso, está permitido
hacer una conversión descendente de tipos. La conversión se debe hacer
de forma explícita, indicando el nombre de la clase a la que se desea
convertir.

Conversión descendente de tipos:

Vehiculo miVehiculo = new Turismo("4090 TUR",


"Skoda", "Fabia",
"Negro",
90.0,
2,
true);
Turismo miNuevoTurismo = (Turismo) miVehiculo;
En este ejemplo, el objeto de la clase Vehiculo almacena un objeto de la
clase derivada Turismo. El objeto miVehiculo se convierte de forma
explícita a un objeto de tipo Turismo utilizando el “casting” (Turismo).

Solo así es posible realizar la asignación a una referencia que ha sido


declarada de tipo Turismo.

Si no se utiliza el “casting”, entonces el compilador de Java da un


mensaje de error que indica que se produce un conflicto de tipos y no

66
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

puede convertir automáticamente una referencia Vehiculo en una


referencia Turismo.

Es importante señalar que el “downcasting” no siempre es legal y puede


producir un error durante la ejecución del programa Java.

Jerarquía de herencia

Cualquier clase Java puede ser utilizada como una clase

e•
base para extender sus atributos y comportamiento. La
clase derivada que se obtenga, puede a su vez, ser
extendida de nuevo. La relación de herencia es
transitiva y define una jerarquía. En Java todas las
clases están relacionadas en una única jerarquía de
herencia puesto que toda clase hereda explícitamente de
otra o bien implícitamente de Object. (Ladrón de Guevara,
J., 2011).

• ; Todas las clases de Java poseen una superclase común, esa es la


e a aS clase Object. Por eso los métodos de la clase Object son
fundamentales ya que todas las clases los heredan. Esos métodos
u e...1 están pensados para todas las clases, pero hay que redefinirlos
• para que funcionen adecuadamente. {Sánchez, J., 2004).

La clase Vehiculo no extiende explícitamente otra clase, por lo que se


puede decir que es una extensión de la clase Object de Java. Esto quiere
decir que cualquier objeto de un programa Java se puede ver como una
instancia de la clase Object.

67
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

3.4 Ampliación de clases

3.4.1 Elementos de clase

'' Los atributos y métodos de una clase


precedidos con la palabra static se

-------''
denominan elementos de clase.

Solo existe un elemento estático para todos los objetos de una misma
clase. Esto significa que los elementos de clase son compartidos por
todas las instancias de la clase. Cuando se modifica un elemento de
clase todas las instancias de la clase ven dicha modificación.

Los atributos de clase deben tener un valor inicial aunque no exista


ninguna instancia de la clase. Si el elemento de clase es un valor
constante, entonces se debe indicar la palabra final.

Pensemos en el siguiente ejemplo

Se puede definir la constante PI para calcular el perímetro y el área de


la clase Circulo.

public class Circulo {


public static final double PI = 3.1415926536;
private double radio;

68
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

public Circulo(double radio) {


this.radio = radio;
}
public double getRadio() {
return this.radio;
}
public double calcularPerimetro() {
return 2 * PI * this.radio;
}
public double calcularArea() {
return PI * this.radio * this.radio;
}
}

El acceso al elemento estático PI, la instanciación del objeto miCirculo y


las invocaciones a los métodos calcularPerimetro() y calcularArea().

// Este programa calcula el perímetro y el área de una circunferencia


public class PerimetroAreaCircunferencia {
public static void main (String[] args) {
System.out.println("El valor de PI es " + Circulo.PI);
Circulo miCirculo = new Circulo(10.0);
System.out.println("El radio del circulo es " +
miCirculo.getRadio() +
" su perimetro es " +
miCirculo.calcularPerimetro() +
" y su área es " +
miCirculo.calcularArea());
}
}

69
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

3.4.2 Derechos de acceso

El estado de un objeto está dado por el conjunto


• de valores de sus atributos. Una modificación
i. arbitraria, intencionada o no, puede provocar
inconsistencias o comportamientos no deseados de un
objeto. Es por este motivo que se debe controlar
el acceso a los atributos de los objetos. Java
proporciona mecanismos de acceso a los elementos de
una clase, de forma que se puede determinar el
derecho de acceso de cada elemento según las
necesidades de los objetos.

Acceso privado,, Los elementos privados solo se pueden


utilizar dentro de la clase que los define. Para indicar el
acceso privado se utiliza prívate.

-�- Acceso de paquete, El acceso a estos componentes es


libre dentro del paquete en el que se define la clase. El
acceso de paquete no se indica expresamente.

Acceso, pretegldo, Los elementos protegidos solo se


pueden utilizar dentro de la clase que los define,
aquellas clases que la extiendan y cualquier clase
definida en el mismo paquete. Para indicar el acceso
protegido se utiliza protected.

Acceso público. Los elementos públicos se pueden


utilizar libremente. Para indicar expresamente el acceso
público se utiliza public. No es necesario, el acceso
público se utiliza como valor por defecto mientras no se
indique prívate o protected. (Ladrón de Guevara, J.J'
201]_).

70
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Para limitar el acceso a los atributos de la clase Vehiculo se utiliza


private.

Al utilizar este tipo de acceso, solo los métodos ‘get’ y ‘set’ de la clase
pueden acceder a ellos.

public class Vehiculo {


private String matricula;
private String marca;
private String modelo;
private String color;
private double tarifa;
private boolean disponible;
}

Con esta declaración, todos los atributos de la clase tienen acceso


prívate y el diagrama de clases muestra un signo menos delante del
identificador del atributo para indicar que es privado.

La clase Vehiculo con sus métodos ‘get y ‘set’.

public class Vehiculo {


private String matricula;
private String marca;
private String modelo;
private String color;
private double tarifa;
private boolean disponible;
public String getMatricula() {
return this.matricula;
}
public String getMarca() {

71
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

return this.marca;
}
public String getModelo() {
return this.modelo;
}
public String getColor() {
return this.color;
}
public double getTarifa() {
return this.tarifa;
}
public boolean getDisponible() {
return this.disponible;
}
public void setTarifa(double tarifa) {
this.tarifa = tarifa;
}
public void setDisponible(boolean disponible) {
this.disponible = disponible;
}
}

La clase Vehiculo define métodos ‘get’ para los atributos matrícula,


marca, modelo, color, tarifa y disponible. Los métodos ‘set’ solo son
aplicables a los atributos tarifa y disponible porque se considera que el
resto de atributos de la clase no pueden modificar su valor una vez que
se ha creado el objeto.

La responsabilidad de modificar los atributos de los objetos es de los


métodos ‘set’. Estos métodos deben verificar que el valor que se desea

72
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

asignar a un atributo es válido y cumple con las restricciones de diseño


de la clase. (Ladrón de Guevara, J., 2011).

3.4.3 Paquetes


'-
;as Java cuenta con un extenso conjunto de clases

1
predefinidas que los programadores pueden reutilizar.

Ue
Estas clases se agrupan en paquetes: llamados colecciones de
• •• • clases. En conjunto, a los paquetes de Java se les conoce como la
biblioteca de clases de Java, o la Interfaz de Programación de
Aplicaciones de Java (API de Java). (Deitel, P. y Deitel, M., 2008).

Los paquetes son grupos de clases, interfaces y otros


• paquetes que están relacionados entre sí. Los paquetes

'- aportan una forma de encapsulación de un nivel


superior al de las clases. Permiten unificar un conjunto
de clases e interfaces que se relacionan funcionalmente.
Por ejemplo, el paquete java engloba un conjunto de
paquetes con utilidades de soporte para desarrollo y
ejecución de aplicaciones como util o !fill9..: ( Ladrón de
Guevara, J., 2011).

Un paquete se declara con la siguiente sintaxis:

package nombre-del-paquete;

Por ejemplo, se podría definir el paquete vehiculos para la aplicación de


le empresa de alquiler de vehículos:

package vehiculos;
El conjunto de paquetes disponibles en Java es bastante extenso. A
continuación se describen solo algunos. Java incluye paquetes para
gráficos complejos, interfaces graficas de usuario avanzadas,
impresión, redes avanzadas, seguridad, procesamiento de bases
de datos, multimedia, accesibilidad (para personas con
discapacidades) y muchas otras funciones.
73
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Figura 3. Paquetes disponibles en Java

Conju rlto efe


java.applet El Paq ueteAppletde Java contiene unaclasey varias
paquetes
tntertacesrequenoasperacrear appíets ce Java; programas que se
disponibles en Jillil
ejecutan en lasnavegadoresWeb.

j:avai..awt El Pa q ueteAbstract Window Toolkit de Java cormenetasdasese


intertacesrequeridasparaorear v manipul<f" GU�enJava l.Oy l.l.

i.ava..awt.event El PaqueteAbsliractWindo11floolkit E.vent deJava


contleneclases e interfaces que habiltan el manejo de e"l'entasp,ara
componentes de la GUI en los.pequetesjavaawtv javax..5\IJing

j:avaiJla·ng. El Paquete del LenguajeJavacontiieneclasese interfaces


requeridaspor muchasprogramasdeJava. Este paquete es importado
por el compila:lor entodos losprogramas

j:ava,.urtH. El Paquete de Utit:ríasdeJavacontiBledasese interfaces


utilitarias, que permiten ecdonescom o manipulaciones de fecha y hora,
procesamíentode números.aleeronosjclese Random), almacenar y
procesar grandescantidadesde dat0&y de.c:omponercadenasen piezas
máspequeñasllamadastokens(claseStringToken2er).

Fuente: UDEMEX 2019 con información de: Deitel, P. y Deitel, M., 2008

74
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Figura 4. Paquetes disponibles en Java (continuación)

Oo:njuntode
j,ava,io. E I Paquete de Ent!rada/Salida de Java contieneclases e i nterfaces
paquetes
disponibles en Java que permiten a 105 programas recibir datos.de ernrada y mostrar datos de
.s.alida

javanet, El Paquete de Red deJavacontieneclasese lntertacesque


permiten a tosprogramascomunkarse mediante redes de computaooras
como Internet

ja.va,uti·I E.I Paquete de UtileríasdeJavacontieneclasese interfaces


utilitarii'fi, que permiten accionescomomanipulacionesdefechay hora,
prn.cesamientodenúmerosale2torios.[claseRandom1, almacenary
pro cesar grand esca ntidades de datas v d escom poner cad enes en piezas.
maspequeñi'fillamadastokens.[claseStringlokenEer).

java:x.swing El f>aquetedeComponentesGUISwing deJavacontiene


el asese interfaces para los.componentes de la GUISv.ing de Java, las
cu a les ofrecen sooocte para G U Is porta bles.

java:x.swing,e-vent El PaqueteSv.ing E.vent deJavacontieneclasese


íntertacesquepermhen el manejode eventos.(por ejemplo, responder a
losclic:sdelraton) para loscomponentesdela GUI en el paquete
j avax ..svJing.

java.te:xt. El Paquete de Texto deJavacontieneclaseseinteriacesque


permiten a losprogramasmanipular números, fechas, cararteresv
cadenas. El paquete proporciona herramientas de internacionaliz.ac:ión
que permiten la personalización de un programacon respecto a una
configuración regional específica. (Deí:el, P. y Deitel, M., 20081.

Fuente: UDEMEX 2019 con información de: Deitel, P. y Deitel, M., 2008

75
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Uso

• A veces resulta que un paquete está dentro de otro paquete,


l.. entonces habrá que indicar la ruta completa a la clase. Para
utilizar componentes que están en otro paquete diferente se
debe añadir una declaración de importación. Una declaración
import no es obligatoria cuando una clase en un paquete utiliza a
otra clase en el mismo paquete. (Deitel, P. y Deitel, M., 2008).

El uso de un paquete se declara con la siguiente sintaxis:

im ort nombre-del-paquete;

Se puede importar un paquete entero o un componente del paquete. Por


ejemplo, si se desea importar las librerías para cálculos matemáticos de
Java.

import java.math.*;

Si solo se desea importar una librería, entonces se debe indicar el


nombre del paquete y del componente. En este ejemplo se importa el
componente Calendar de la librería de utilidades de Java.

import java.util.Calendar;

La declaración de importación se incluye antes de la declaración de la


clase. En el siguiente ejemplo se incluye el componente Calendar de util
y se utiliza el método getInstance() para obtener el día, el mes y el año
de la fecha actual.

import java.util.Calendar;
public class CalcularFechaHoy {
public static void main (String[] args) {
int edad, diaHoy, mesHoy, añoHoy;
76
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

diaHoy = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
mesHoy = Calendar.getInstance().get(Calendar.MONTH) + 1;
añoHoy = Calendar.getInstance().get(Calendar.YEAR);
System.out.println("La fecha de hoy es " +
diaHoy + "/" +
mesHoy + "/" +
añoHoy);
}
}

Nombres

El nombre de un paquete debe ser representativo de su contenido. El


nombre puede contener la declaración de subpaquete. Se puede incluir
el nombre de la empresa que ha desarrollado el paquete para facilitar su
identificación.

package nombre-de-la-empresa.nombre-del-paquete;

Por ejemplo, el paquete vehiculos de la empresa “Mi Empresa” se podría


identificar:

package miEmpresa.vehiculos;

3.4.4 Clases predefinidas


(_ 3 a Una característica importante de Java es que aporta gran
cantidad de clases predefinidas. Estas clases están
ue 1 especializadas en comunicaciones, web, interfaz de usuario,
• •• • matemáticas y muchas otras aplicaciones.

77
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

A continuación se describen las clases asociadas a los tipos primitivos de


Java, la clase Math y la clase String.

Las clases asociadas a los tipos primitivos

Los tipos predeñnídes boolean, ehar, ínt, long, float v


double son tlpos simples, 1110 son clases. Para facilitar la
programación en Java se han creado clases asociadas a los
tipos predefinidos. Estas clases proporcionan métodos útiles
para convertir cadenas de texto a otros tipos, para imprimir
los números con diversos formatos y para describir los tipos
simples .

Estas clases generan automáticamente una instancia cuando


.."".a'... '
se usan tipos simples en contextos en los que se espera un
objeto. Además, pueden utilizarse en expresiones en donde
se espera un tipo simple.

Estas clases tienen los siguientes métodos:

 Método constructor a partir de un valor de tipo simple

Character letra = new Character('A');


Integer numero = new Integer(10);

 Método constructor que recibe una cadena de texto y la


traduce al tipo simple

Integer numero = new Integer("120");

 Método toString() que transforma el valor almacenado en


una cadena

Integer numero = new Integer("100");


78
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

System.out.println(numero.toString());

 Método equals() para comparar el valor almacenado

Integer numero1 = new Integer("100");


Integer numero2 = new Integer("101");
System.out.println(numero2.equals(numero1));

La clase Math

• ,
e
aS "1
u e...• La clase Math es parte del paquete java.lang, que el
compilador importa de manera implícita, por lo que no es
necesario importarla para utilizar sus métodos. La clase
Math contiene constantes y métodos de uso común
en matemáticas. Todas las operaciones que se realizan
en esta clase utilizan el tipo double. Contiene la constante
pi (Math.PI) y el número de Euler (Math.E). En las
funciones trigonométricas, los ángulos se expresan
en radianes y los métodos devuelven valores de tipo
double. La clase Math incluye funciones como
potenciación, redondeo, cuadrado, raíz cuadrada y muchas
mas.

La clase String

La clase String se usa paria 1manejari cadenas de


cer acteees de cualquier longitud. Un objeto String
se puede crear a partir de una secuencia de
caracteres delimitados por comillas doblles.
String nombre = "Juan";
String apellidos = "González López";

79
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Un objeto String también se puede crear utilizando el constructor de la


clase.

String mensaje = new String(“Hola Mundo”);

La clase String tiene un tratamiento particular en Java. Además de la


construcción de objetos a partir de literales entre comillas, se pueden
aplicar los operadores + y += para concatenar objetos de tipo String.

String hola = new String("Hola");


String espacio = new String (" ");
String mundo = new String("Mundo");
String holaMundo = hola + espacio + mundo;
System.out.println(holaMundo);

Para conocer la longitud de un objeto String se utiliza el método


length(). Por ejemplo, el objeto holaMundo tiene una longitud de 10
caracteres.

System.out.println("El texto " + holaMundo + " tiene " +


holaMundo.length() + " letras");

Para comparar cada letra de dos objetos de tipo String se utiliza el


método contentEquals().

String nombre1 = "Angel";


String nombre2 = "Carlos";
System.out.println(nombre1.contentEquals(nombre2));

80
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

El método String.valueOf() devuelve una cadena correspondiente al


valor de su parámetro. Este método está sobrecargado y acepta tipos
boolean, char, int, long, float y double.

String año = String.ValueOf(2011); // año = "2011"

El método charAt(int posicion) de la clase String devuelve el carácter


almacenado en la posición indicada de una cadena de caracteres. El
primer carácter de una cadena se almacena en la posición cero y el
último en la posición correspondiente a la longitud de la cadena – 1.

String holaMundo = "Hola Mundo";


System.out.println("La primera letra de 'Hola Mundo'" +
" es " + holaMundo.charAt(0));

p Para más lnformaclón sobre los métodos


de la clase String_, consulte el API de Java.

http ://docs . orad e .com/javase/1.5 .O/docs/


api/j avalla ng/String.htrnl

Es momento de resolver la actividad complementaria 3.2 que te


permitirá reforzar el aprendizaje adquirido hasta el momento

4C Acti idad Com

81
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
!:.�� · Universidad
� · Digital
del Estado de México

GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Para posteriormente realizar la actividad de aprendizaje 3.2


correspondiente a este tema.

] '.W¡ Actividad de A rendiza·e 3.2

RESUMEN UNIDAD 3

Esta unidad se puede resumir de la siguiente forma:

Pudiste conocer y comprender las


características generales de las clases y
sus elementos principales, a los
objetos y su ciclo de vida dentro de
Java. También aprendiste como
representar las clases y objetos
utilizando diagramas UML.

Conociste a los elementos de Java que


Atributos,
almacenan el estado de un objeto,
métodos y
llamados atributos. A las funciones
constructores
llamados métodos, como se declaran e
invocan. Así como la inicialización de
objetos mediante constructores.

82
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

Realizaste un análisis más detallado de


Clases y objetos:
las clases y objetos revisando los
un análisis más
detallado conceptos de composición, herencia,
polimorfismo, y compatibilidad de tipos.

Finalmente se amplió el análisis de las


Ampliación de clases para conocer los elementos de
clases clase, los Derechos de acceso, los
··--------=--------� paquetes y las clases predefinidas de
Java.

83
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
w
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

CRITERIOS DE EVALUACIÓN DE LA UNIDAD 3

( TEMA (S)
\ ACTIVIDAD DE
APRENDUAJE
VALOR

e
3.1. Clases y objetos �
3.2. Atributos métodos e Sobre carga de una
inicialización de objetos mediante 5%

J e
clase
constructores.
'----- ___, �
3.3. Clases y objetos: un análisis
más detallado.
3.4.Ampliación_deda.ses. _,
[ Clase base 5%

TOTAL
10%
UNIDAD 3
�-----)

84
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 3. CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS EN JAVA

REFERENCIAS CONSULTADAS ANEXAS AL PROGRAMA

1. Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima


edición. Pearson Educacion, México. ISBN: 978-970-26-1190-5

2. Ladrón de Guevara, J. (2011). Fundamentos de programación en


Java. Universidad Complitense de Madrid. España. Recuperado el
10 de enero de 2014, de:
http://www.etnassoft.com/biblioteca/fundamentos-de-
programacion-en-java/

3. Sánchez, J. (2004). Java2 incluye Swing, Threads, programación


en red, JavaBeans, JDBC y JSP / Servlets España. Recuperado el
10 de enero de 2014, de:
http://www.jorgeSánchez.net/programacion/manuales/Java.pdf

85
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
UD UnivS"Sidacl
GOBIERNO DEL
EM Digital
del Estado de México

ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

UNIDAD 4

PROGRAMACIÓN EN JAVA

En el siguiente esquema se representan los contenidos


temáticos correspondientes a la cuarta unidad temática de
Programación II, cada uno de estos temas guardan relación entre sí.

SECUENCIA DIDÁCTICA «UNIDAD 4»

Figura 1. Mapa de contenidos temáticos unidad 4

4.1. Estructuras de almacenamiento


4.4. AWT y Swing

4.4.1 Componentes 4.1.1 Arrays unidimensionales


4.4.2 comparación entre componentes de 4.1.2 Arrays multidimensionales
GUI ligeros y pesados 4.1.3 Uso de arrays
4.4.3 Métodos de JComponent 4.1.4 Ordenación de arrays

UNIDAD 4
PROGRAMACIÓN EN
JAVA

. ... :...

4.3.1 Flujos de entrada y salida de datos de 4.2.1 Cuándo utilizar el manejo de


Java excepciones
4.3.2 Leer y escribir en ficheros de texto 4.2.2 Jerarquía de excepciones en Java
4.3.3 Leer y escribir objetos en ficheros 4.2.3 Sentencias para detectar, indicar y
manejar excepciones
4.2.4 Manejo de excepciones

Fuente: UDEMEX 2019

1
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

INTRODUCCIÓN

Esta unidad tiene como objetivo describir el funcionamiento de las


estructuras de control, el manejo de excepciones, los flujos de entrada y
salida, y las bibliotecas de clases para el desarrollo de interfaces de
usuario gráficas en Java.

El primer tema nos mostrará un panorama general la estructura de


almacenamiento de Java denominada array. El segundo tema está
dedicado a las manejo de excepciones para resolver los problemas que
ocurren durante la ejecución de un programa. A continuación.
Finalmente conocerás los dos conjuntos de componentes de GUI en
Java. Lo anterior con el fin de que identifiques que los temas
previamente descritos y lo puedas aplicar en tu quehacer como
Licenciado en Informática Administrativa.

Cada contenido temático de esta unidad ha sido diseñado apegado a la


nueva estrategia de aprendizaje por competencias, por lo tanto es
necesario que sigas todas las instrucciones, así como dar seguimiento a
las actividades de aprendizaje, a su vez demostrar interés en las
evaluaciones y asesorías para que puedas alcanzar el éxito y cumplas tu
meta de obtener la licenciatura.

Sólo nos resta desearte mucho éxito en esta última etapa.

2
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

COMPETENCIAS ESPECÍFICAS

Figura 2. Competencias específicas unidad 4

Comprende la filosofía del lenguaje de programación JAVA a través de la


implementación de aplicaciones orientadas a objetos, para desarrollar programas
mediante la utilizacion de clases abstractas.

Hará uso de su capacidad de abstracción a través de la implementación de clases,


para desarrollar las prácticas propuestas en esta unidad.

Resolverá de manera critica las actividades expuestas en esta unidad, a través de los
conocimientos adquiridos, mediante la plataforma y su asesor, para demostrar su nivel
de desarrollo sobre Java.

®®@
Fuente: UDEMEX 2019

3
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

4.1 Estructuras de almacenamiento

-'A- Java proporciona una estructura die allmacenamiento


denominada array que permite almacenar muchos
objetos die lla misma clase e identificarlos con el
mismo nombre. (Ladrón de Guevara, J., 2011).

4.1.1 Arrays unidimensionales

Un array es una colección die valores de un


mismo tipo enqrosados en la misma
variable, de tal forma que se puede acceder
a cada valor independientemente .
(_s_á_n___
h z_,_J_
e _
. _2, º-º
_' -4__
) .
---- ''
c

.._.

Los arrays solucionan problemas concernientes al manejo de muchas


variables que se refieren a datos similares. Gracias a los arrays se
puede crear un conjunto de variables con el mismo nombre. La
diferencia será que un número (índice del array) distinguirá a cada
variable. (Sánchez, J., 2004).

-'A-
• La declaración de un array tiene la siguiente sintaxis:

tipo-o-clase[] identificador-array;
o
tipo-o-clase identificador-array[];

Veamos el siquíente ejemplo

4
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

Un array de números enteros se puede declarar de dos formas:

int[] numeros;
o
int numeros[];

Ambas declaraciones son equivalentes, el tipo base del array es int y el


nombre del array es números. Todos los elementos de la estructura
numeros[ ] almacenan un int. La primera declaración define un array de
objetos de tipo primitivo int con identificador numeros. La segunda
declaración dice que cada elemento de la forma numeros[ ] es de tipo
int.

Ejemplos de declaraciones de arrays:

int[] numerosEnteros; // array de tipo int


double[] numerosReales; // array de tipo double
String[] nombres; // array de tipo String
Object[] objetos; // array de la clase Object
Vehiculo[] vehiculos; // array de la clase Vehiculo
Turismo[] turismos; // array de la clase Turismo


........ Se denomina tipo base del array al tipo que se declara
para sus elementos. Este tipo base puede ser un tipo
primitivo de Jave, un objeto o una cllase definida.

Además de declarar un array es necesario indicar el número de


elementos que va a almacenar. Un array es un objeto y como cualquier

5
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

objeto de un programa Java, su valor inicial es null. Antes de hacer


referencia a los elementos del array es necesario instanciar el objeto.


.... Cuando se instancia un objeto array se asigna un
espacio de memoria para almacenar los elementos del
array. !Para esto es necesario saber el número total de
elementos que va a almacenar.

La instanciación de un objeto array se hace de la siguiente forma:

nombres = new String[100];


vehiculos = new Vehiculo[50];

En este ejemplo, el array nombres tiene capacidad para almacenar


hasta 100 objetos de tipo String. El array vehiculos puede almacenar
hasta 50 objetos de la clase Vehiculo.

Cuando se crea un array se inicializa el valor de todos sus elementos al


valor por defecto del tipo base del array: cero para los números, false
para los boolean, \u0000 para los caracteres y null para las referencias
a objetos.

De forma similar al resto de objetos de Java, un array se puede


inicializar al momento de la declaración. En este caso se inicializa al
valor por defecto del tipo del array.

int[] numerosEnteros = new int[10];


String[] nombres = new String[100];
Vehiculo[] vehiculos = new Vehiculo[50];
Turismo[] turismos = new Turismo[50];

6
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

. ¡. Un array también se puede inicializar indicando la lista de


valores que va a almacenar:

String[] diasLaborables = {"Lunes",


"Martes",
"Miércoles",
"Jueves",
"Viernes";
int[] enteros = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

-.a-
. .. ' Para hacer referencia a cada elemento de
necesario indicar la posición que ocupa en la
un arrav es
estructura die
almacenamiento. Esta posición se denomina 'índice. El primer
elemento de un arrav se allmacena en la posición cero y el
último elemento en la posición n-1, donde n es el tamaño del
arra y.

Veamos el siquíente ejemplo

El array notas almacena 5 números enteros:

La declaración del array:

int[] notas = {4, 9, 7, 5, 10};

El primer elemento del array se almacena en la posición 0 y el último en


la posición 4, que equivale a su tamaño menos 1. El atributo length

7
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

almacena el tamaño de un array. En este ejemplo, la última posición del


array es notas.length – 1.

Este arrray notas almacena 5 calificaciones, notas[0] es el primer


elemento del array y notas[4] el último. Para mostrar las calificaciones
almacenadas en el array, se puede utilizar un for con una variable de
control que vaya de cero hasta la longitud del array menos 1.

for (int i=0; i<=notas.length - 1; i++)


System.out.println("notas[" + i + "] es " +
notas[i]);

La salida por la consola:

notas[0] es 4
notas[1] es 9
notas[2] es 7
notas[3] es 5
notas[4] es 10

El siguiente for es equivalente al anterior. En vez de definir el límite de


la variable de control menor o igual a notas.length–1, se hace
estrictamente menor que notas.length.

for (int i=0; i<notas.length; i++)


System.out.println("notas[" + i + "] es " +
notas[i]);

8
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

El atributo length de un array almacena un valor numérico que se puede


consultar pero no se puede modificar. Es una buena práctica de
programación utilizar el atributo length para hacer referencia al
tamaño de un array.

Otra forma de mostrar los valores almacenados en un array es


utilizando un fer, donde la variable de control del fer, con
identificador nota, toma el valor de todos los elementos de la
estructura de almacenamiento, en este caso, el array notas.

for (int nota : notas)


System.out.println(nota);

La variable nota del for toma los valores nota[0], nota[1], nota[2],
nota[3] y nota[4] en cada iteración. Cuando se utiliza un for no hace
falta indicar los límites de la variable de control del for, basta que esta
variable sea del tipo almacenado en el array. En este ejemplo nota es de
tipo int.

La salida por la consola:

4
9
7
5
10

9
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

El array diasLaborables almacena los nombres de los días laborables de


la semana:

La declaración del array:

String[] diasLaborables = {"Lunes",


"Martes",
"Miércoles",
"Jueves",
"Viernes"};

De nuevo, se utiliza un for para mostrar el contenido del array


diasLaborables que almacena objetos de tipo String.

for (String dia: diasLaborables)


System.out.println(dia);

La variable dia del for es de tipo String y toma los valores, en cada
iteración.

diasLaborables[0], diasLaborables[1], diasLaborables[2],


diasLaborables[3] y diasLaborables[4]
La salida por consola:

Lunes
Martes
Miércoles
Jueves
Viernes

10
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

4.1.2 Arrays multidimensionales

-:a:- array
M
Los arrays además pueden tener varias dimensiones. Un
de dos dimensiones es un array que contiene otro
array en cada uno de sus elementos .

Un array de dos dimensiones de números enteros de tamaño 2 x 3 se


declara:

int[ ][ ] notas = new int[2][3];

Un array de dos djmenstones tiene forma de tabla. Para


.A .
.....

• "
...

indicar la posición de uno de sus elementos es necesario


indicar dos índices, uno para la fila y otro para la columna,
La fila indica la posición en el primer array y lla columna la
posición en el segundo array.

Veamos el slqulente ejemplo

Un array de dos dimensiones de números enteros. El array notas se


inicializa con los valores {{5, 7, 9}, {4, 6, 5}}.

Este array representa una tabla de 2 x 3 y en total almacena 6 números


enteros. El array notas tiene dos elementos y cada uno de ellos es un
array: notas[0] y notas[1]. El elemento notas[0] tiene a su vez 3
elementos: notas[0][0], notas[0][1] y notas[0][2]. El elemento
notas[1] tiene también 3 elementos: notas[1][0], notas[1][1] y
notas[1][2].

11
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

Para mostrar los elementos del array notas es necesario utilizar dos for
anidados.

for (int i = 0; i < notas.length; i++)


for (int j = 0; j < notas[i].length; j++)
System.out.println("notas[" + i + "][" + j + "] " +
"es " + notas[i][j]);

La salida por la consola:

notas[0][0] es 5
notas[0][1] es 7
notas[0][2] es 9
notas[1][0] es 4
notas[1][1] es 6
notas[1][2] es 5

También se puede utilizar un for “para todo”:

for (int[] fila : notas)


for (int nota : fila)
System.out.println(nota);

La salida por la consola:

5
7
9
4

12
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

6
5

Un aliliay multlidiimensional es aquel que


dentro de u no de sus elementos almacena uno o

�--------------''
más arrays de objetos. {Sánchezr J., 2004).

Veamos el slqulente ejemplo

Un array de tres dimensiones de números enteros de tamaño 3 x 3 x 3


se declara:

int[][][] numeros = new int[3][3][3];

Este array de tres dimensiones tiene forma de cubo y almacena 27


números enteros. Para indicar la posición de uno de sus elementos es
necesario utilizar tres índices. Si el array debe almacenar números del 1
al 27 consecutivos en cada una de sus dimensiones, entonces se
inicializa utilizando tres for anidados:

int numero = 1;
for (int i=0; i<numeros.length; i++)
for (int j=0; j<numeros[i].length; j++)
for (int k=0; k<numeros[j].length; k++)
numeros[i][j][k] = numero++;

13
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

Para mostrar los números almacenados:

for (int i=0; i<numeros.length; i++) {


for (int j=0; j<numeros[i].length; j++) {
for (int k=0; k<numeros[j].length; k++)
System.out.print(numeros[i][j][k] + " ");
System.out.println("");
}
System.out.println("");
}

La salida por la consola:

123
456
789
10 11 12
13 14 15
16 17 18
19 20 21
22 23 24
25 26 27

4.1.3 Uso de arrays

Suponga que se desea almacenar en arrays el catálogo de vehículos y la


relación de clientes de una empresa de alquiler de vehículos. Para esto
es necesario definir una nueva clase, EmpresaAlquilerVehiculos, que
almacene la información detallada de la empresa, los clientes y el
catálogo de vehículos.

14
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

public class EmpresaAlquilerVehiculos {


private String cif;
private String nombre;
private String paginaWeb;
private int totalClientes;
private Cliente[] clientes;
private int totalVehiculos;
private Vehiculo[] vehiculos;
private int totalAlquileres;
private VehiculoAlquilado[] alquileres;

// se omiten los métodos ‘get’ y ‘set’ de la clase

public EmpresaAlquilerVehiculos (String cif,


String nombre,
String paginaWeb) {
this.cif = cif;
this.nombre = nombre;
this.paginaWeb = paginaWeb;
this.totalClientes = 0;
this.clientes = new Cliente[50];
this.totalVehiculos = 0;
this.vehiculos = new Vehiculo[50];
this.totalAlquileres = 0;
this.alquileres = new VehiculoAlquilado[100];
}
}

15
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

La clase EmpresaAlquilerVehiculos está compuesta de arrays de objetos


de las clases Cliente, Vehiculo y VehiculoAlquilado. A continuación se
incluye la declaración de los atributos de estas clases, se omite la
declaración de los métodos constructores y los métodos ‘get’ y ‘set’.

public class Cliente {


private String nif;
private String nombre;
private String apellidos;
}

public class Vehiculo {


private String matricula;
private String marca;
private String modelo;
private String color;
private double tarifa;
private boolean disponible;
}

public class VehiculoAlquilado {


private Cliente cliente;
private Vehiculo vehiculo;
private int diaAlquiler;
private int mesAlquiler;
private int añoAlquiler;
private int totalDiasAlquiler;
}

16
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

La clase EmpresaAlquilerVehiculos declara tres arrays para registrar a


sus clientes, vehículos y el histórico de vehículos alquilados. El array
clientes puede almacenar hasta 50 objetos de tipo Cliente, el array
vehiculos puede almacenar hasta 50 objetos de tipo Vehiculo y el array
alquileres tiene capacidad para almacenar 100 objetos de tipo
VehiculoAlquilado.

Las variables numéricas totalClientes, totalVehiculos y totalAlquileres se


utilizan para almacenar el total de objetos almacenados en cada uno de
los arrays. Estas variables se inicializan a cero en el método constructor
de la clase.

La clase EmpresaAlquilerVehiculos declara los siguientes métodos para


realizar operaciones:

 registrarCliente(Cliente cliente). Añade un nuevo cliente a la lista


de clientes de la empresa.

 registrarVehiculo(Vehiculo vehiculo). Añade un vehículo al


catálogo de vehículos de la empresa.

 imprimirClientes(). Muestra la relación de clientes de la empresa.

 imprimirVehiculos(). Muestra el catálogo de vehículos de la


empresa.

 alquilarVehiculo(String matricula,String nif,int dias).

Modifica la disponibilidad del vehículo para indicar que está alquilado


y añade un objeto de tipo VehiculoAlquilado al array de vehículos
alquilados. Este array almacena el cliente, el vehículo y los días de
alquiler de cada vehículo alquilado.

17
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

 recibirVehiculo(String matricula). Modifica la disponibilidad del


vehículo para que se pueda alquilar de nuevo.

El método registrarCliente(Cliente cliente) almacena un objeto de la


clase Cliente en la última posición del array clientes, dada por la variable
totalClientes y a continuación incrementa la variable totalClientes.

public void registrarCliente(Cliente cliente) {


this.clientes[this.totalClientes] = cliente;
this.totalClientes++;
}

El método registrarVehiculo(Vehiculo vehiculo) almacena un objeto de la


clase Vehiculo en la última posición del array vehiculos, dada por la
variable totalVehiculos y a continuación incrementa la variable
totalVehiculos.

public void registrarVehiculo(Vehiculo vehiculo) {


this.vehiculos[this.totalVehiculos] = vehiculo;
this.totalVehiculos++;
}

El método imprimirClientes() muestra la relación de clientes de la


empresa de alquiler.

public void imprimirClientes() {


System.out.println("NIF cliente\tNombre\n");

for (int i=0; i<this.totalClientes; i++)


System.out.println(clientes[i].getAtributos());

18
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

El método imprimirVehiculos() muestra el catálogo de vehículos de la


empresa de alquiler. El método getAtributosInforme() muestra el detalle
de atributos del vehículo.

public void imprimirVehiculos() {


System.out.println("Matricula\tModelo " +
"\tImporte Disponible\n");

for (int i=0; i<this.totalVehiculos; i++)


System.out.println(
vehiculos[i].getAtributosInforme());
}

Para registrar el alquiler de un vehículo por un cliente se usa el método


alquilarVehiculo(String matricula, String nif, int dias).

Este método modifica la disponibilidad del vehículo para indicar que está
alquilado. El método getCliente(String nif) busca la referencia del cliente
con el NIF dado en el array clientes. De forma similar, el método
getVehiculo(String matricula) busca la referencia del vehículo con la
matrícula dada en el array vehiculos. Una vez encontrado el vehículo
con la matrícula indicada, se verifica si está disponible para alquilar y se
modifica su disponibilidad. A continuación, almacena un objeto de tipo
VehiculoAlquilado en el array alquileres. Este objeto relaciona un cliente,
un vehículo, la fecha actual y los días de alquiler.

El método getCliente(String nif).

19
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

private Cliente getCliente(String nif) {


for (int i=0; i<this.getTotalClientes(); i++)
if (this.clientes[i].getNIF() == nif)
return this.clientes[i];
return null;
}
public void alquilarVehiculo(String matricula,
String nif,
int dias) {
Cliente cliente = getCliente(nif);
Vehiculo vehiculo = getVehiculo(matricula);

// busca el cliente con el NIF dado en el array


// clientes y el vehículo con la matrícula dada en el
// array vehiculos, si el vehículo está disponible se
// alquila con la fecha actual, que se obtiene
// ejecutando los métodos diaHoy(), mesHoy() y
// añoHoy(), cuya declaración no se incluye

if (vehiculo.getDisponible()) {
vehiculo.setDisponible(false);
this.alquileres[this.totalAlquileres]=
new VehiculoAlquilado(cliente, vehiculo,
diaHoy(), mesHoy(), añoHoy(), dias);
this.totalAlquileres++;
}
}
20
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

El método recibirVehiculo(String matricula) modifica la disponibilidad del


vehículo para que se pueda alquilar de nuevo. Este método utiliza el
método getVehiculo(String matricula) que busca el vehículo con la
matrícula dada en el array vehiculos. Si lo encuentra, modifica su
disponibilidad para indicar que nuevamente está disponible para
alquiler.

public void recibirVehiculo(String matricula) {


// busca el vehículo con la matrícula dada en el
// array vehiculos y modifica su disponibilidad
// para que se pueda alquilar de nuevo

Vehiculo vehiculo = getVehiculo(matricula);


if (vehiculo != null)
vehiculo.setDisponible(true);
}

Una vez definida la clase EmpresaAlquilerVehiculos es necesario definir


la clase del programa principal donde se van a crear las instancias de los
objetos de esta aplicación. El método main() del programa principal crea
una instancia de la clase EmpresaAlquilerVehiculos, denominada
easydrive con CIF “A-28-187189”, nombre “easydrive” y página web
“www.easydrive.com”.

// la instancia easydrive de EmpresaAlquilerVehiculos


EmpresaAlquilerVehiculos easydrive = new
EmpresaAlquilerVehiculos("A-28-187189", "easy drive",
"www.easydrive.com");

21
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

Al crear la instancia easydrive, el método constructor de la clase


EmpresaAlquilerVehiculos inicializa los arrays clientes y vehículos de
este objeto. Una vez creada la instancia es necesario añadir clientes y
vehículos al objeto easydrive. En este ejemplo se registran dos clientes
y cinco vehículos de alquiler: tres turismos, un deportivo y una
furgoneta.

Para registrar un nuevo cliente basta con invocar el método


registrarCliente(Cliente cliente) con una instancia de la clase Cliente
para añadir un nuevo cliente al array clientes del objeto easydrive.

// registro del cliente con NIF "X5618927C"


easydrive.registrarCliente(new Cliente("X5618927C",
"Juan","González López"));

Para registrar un nuevo vehículo basta con invocar el método


registrarVehiculo(Vehiculo vehiculo) con una instancia de la clase
Vehiculo para añadir un nuevo vehículo al array vehiculos del objeto
easydrive.

// registro del turismo con matrícula "4060 TUR"


easydrive.registrarVehiculo(new Turismo("4060 TUR",
"Skoda","Fabia", "Blanco", 90.0, 2,
false));

Una vez registrados los clientes y los vehículos de la empresa, se


invocan los métodos imprimirClientes() e imprimirVehiculos() para
mostrar la relación de clientes y el catálogo de vehículos de la empresa
“easydrive”.

22
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

// imprime la relación de clientes de "easydrive"


easydrive.imprimirClientes();

// imprime el catálogo de vehículos de "easydrive"


easydrive.imprimirVehiculos();

public class EmpresaAlquilerVehiculos {


// se omiten los atributos y el resto de métodos de la clase
public void registrarCliente(Cliente cliente) {
this.clientes[this.totalClientes] = cliente;
this.totalClientes++;
}

public void registrarVehiculo(Vehiculo vehiculo) {


this.vehiculos[this.totalVehiculos] = vehiculo;
this.totalVehiculos++;
}

public void imprimirClientes() {


System.out.println("NIF cliente\tNombre\n");
for (int i=0; i<this.totalClientes; i++)
System.out.println(clientes[i].getAtributos());
}

public void imprimirVehiculos() {


System.out.println("Matricula\tModelo " +
"\tImporte Disponible\n");
for (int i=0; i<this.totalVehiculos; i++)
23
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

System.out.println(vehiculos[i].getAtributosInforme());
}

public void alquilarVehiculo(String matricula,


String nif,
int dias) {
Cliente cliente = getCliente(nif);
Vehiculo vehiculo = getVehiculo(matricula);
if (vehiculo.getDisponible()) {
vehiculo.setDisponible(false);
this.alquileres[this.totalAlquileres] =
new VehiculoAlquilado(cliente, vehiculo,
diaHoy(), mesHoy(), añoHoy(), dias);
this.totalAlquileres ++;
}
}
public void recibirVehiculo(String matricula) {
Vehiculo vehiculo = getVehiculo(matricula);
if (vehiculo != null)
vehiculo.setDisponible(true);
}
}
El programa principal de la aplicación.

public class MisVehiculos {


public static void main(String[] args) {
// la instancia easydrive de la clase
//empresaAlquilerVehiculos
EmpresaAlquilerVehiculos easydrive = new

24
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

EmpresaAlquilerVehiculos("A-28-187189",
"easy drive","www.easydrive.com");

// registro de los clientes de la empresa

easydrive.registrarCliente(new Cliente("X5618927C",
"Juan", "González López"));
easydrive.registrarCliente(new Cliente("Z7568991Y",
"Luis", "Fernández Gómez"));

// registro de los vehículos de la empresa


easydrive.registrarVehiculo(new Turismo("4060 TUR",
"Skoda","Fabia", "Blanco", 90.0, 2, false));
easydrive.registrarVehiculo(new Deportivo("4070 DEP",
"Ford", "Mustang", "Rojo", 150.0, 2000));
easydrive.registrarVehiculo(new Turismo("4080 TUR", "VW",
"GTI","Azul", 110.0, 2, false));
easydrive.registrarVehiculo(new Turismo("4090 TUR",
"SEAT","Ibiza", "Blanco", 90.0, 4, false));
easydrive.registrarVehiculo(new Furgoneta("4100 FUR",
"Fiat","Ducato", "Azul", 80.0, 1200, 8));

// imprime la relación de clientes de easydrive


easydrive.imprimirClientes();
// imprime el catálogo de vehículos de easydrive
easydrive.imprimirVehiculos();
}
}

25
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

La salida por la consola muestra la relación de clientes y el catálogo de


vehículos para alquiler:

La relación de clientes:

NIF cliente Nombre


X5618927C González López, Juan
Z7568991Y Fernández Gómez, Luis

El catálogo de vehículos:

Matrícula Modelo Color Importe Disponible


4060 TUR Skoda Fabia Blanco 90.0 true
4070 DEP Ford Mustang Rojo 150.0 true
4080 TUR VW GTI Azul 110.0 true
4090 SEAT Ibiza Blanco 90.0 true
4100 TUR Fiat Ducato Azul 80.0 true

26
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

4.1.4 Ordenación de arrays


i.

Una de las operaciones mas comunes con arrays es la


ordenación. Un algoritmo de ordenación clasifica un conjunto
de datos de forma ascendente o descendente. En el paquete
java.utils se encuentra una clase estática llamada Arrays. Una
clase estática permite ser utilizada como si fuera un objeto.
Java define la clase Arrays con métodos que permiten realizar
operaciones de ordenación y búsqueda en objetos de tipo
array.

Estos métodos se pueden utilizar con todos los tipos


primitivos, Strinq_. y con cuallquier otro tipo de objeto.
(Sánchez, J., 2004).

Los métodos más utilizados de esta clase son:

Figura 3. Clase Arrays

Clase Arrays Arrays.sort(array-de-datos). Ordena el oontenido del array


en orden ascendente.

Arrays.sort(numeros) ordena t:odos los elementos del array


numeres.

Arrays.sort(array-de-datos, inioio, fin). Ordena el contenido


del array en orden ascendente, desde la posioión de inicial
hasta la posición final.

Arravs.sortrrnrmeros, o, 49) ordena los elementos


almacenados entre la posición O y la 49 del array numeras.

Arrays.binarySearch(array-de-olatos, alave). Busca la dlave


indicada en el array de números enteros.

Fuente: UDEMEX 2019 con información de: Sánchez, J., 2004

27
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

Figura 4. Clase Arrays (continuación)

Clase Arrays Arrays.binarySearch(numeros, 1991) busca el número


1991 en el array numeras.

Arravs.fillíarrav-de-datos, dato). Rellena el arrav cm el


valor dado. Se puede utilizar con todos los tipos primitivos,
String y con cualquier otro tipo de objeto.

Arravs.fillínurneros, 5) rellena con el valor 5 todo el arrav


numeras.

Arrays.fill(array-de-dlatos, dato, inicio, fin). Rellena el arrav


con el valor dado, indicando la posioión inicial y final.

Arravs.fillínumeros, 5, O, 5) rellena con el valor 5 desde la


posición O hasta la posición 5 del arrav numeras.

Fuente: UDEMEX 2019 Fuente: UDEMEX 2019 con información de: Sánchez, J., 2004

Veamos el stquíente ejemplo

Programa que utiliza el método sort de la clase Arrays para ordenar


ascendentemente un array de números enteros.

public class SortArray {


public static void main(String[] args) {
int[] numerosDesordenados = {5, 4, 6, 7, 5, 6, 4, 8, 7, 10};

// numerosOrdenados es una copia de numerosDesordenados


// el método clone() copia del objeto al que se aplica

int[] numerosOrdenados = numerosDesordenados.clone();

28
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

System.out.println("\nEl array de números desordenados\n");


for (int numero : numerosDesordenados)
System.out.println(numero);

// el método sort(array-de-datos) de la clase Array ordena


// ascendentemente todos los elementos de numerosOrdenados

Arrays.sort(numerosOrdenados);
System.out.println("\nEl array de números ordenados\n");
for (int numero : numerosOrdenados)
System.out.println(numero);
}
}

La salida por la consola:

El array de números desordenados

5
4
6
7
5
6
4
8
7
10

El array de números ordenados

4
4
5
5

29
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

6
6
7
7
8
10

4.2 Excepciones

Una excepción es la indicación de un problema que ocurre durante la


ejecución de un programa.

'' El nombre "excepción" implica que el problema


ocurre con poca frecuencia; si la "regla" es que una
instrucción generalmente se ejecuta en forma
correcta, entonces la "excepción a la reglan es
cuando ocurre un problema .. O.';,�tE;!J, P., y Deitel, M.r
''
2008).

En Java se denomina excepción a una situación que no se


puede resolver y que provoca la detención del programa;
es decir una condición de error en tiempo de ejecución (es
decir cuando el programa ya ha sido compilado y se está
ejecutando). (Sánchez, J "J" 2004).

El manejo de excepciones le permite crear aplicaciones que puedan


resolver (o manejar) las excepciones. En muchos casos, el manejo de
una excepción permite que el programa continúe su ejecución como si
no se hubiera encontrado el problema. Un problema más grave podría
evitar que un programa continuara su ejecución normal, en vez de
requerir al programa que notifique al usuario sobre el problema antes de
terminar de una manera controlada. (Deitel, P. y Deitel, M., 2008).

30
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

4.2.1Cuándo utilizar el manejo de excepciones

-�- Las excepciones se lanzan cuando un método detecta


un problema y no puede manejarlo.

El manejo de excepciones no está diseñado para procesar los


problemas asociados con los eventos asíncronos (por ejemplo,
completar las operaciones de E/S de disco, la llegada de mensajes de
red, clics del ratón y pulsaciones de teclas), los cuales ocurren en
paralelo con, y en forma independiente de, el flujo de control del
programa. (Deitel, P. y Deitel, M., 2008).

Veamos el siguiente ejemplo

 El archivo que queremos abrir no existe


 Falla la conexión a una red
 La clase que se desea utilizar no se encuentra en ninguno de los
paquetes reseñados con import

Los errores de sintaxis son detectados durante la compilación. Pero las


excepciones pueden provocar situaciones irreversibles, su control debe
hacerse en tiempo de ejecución y eso presenta un gran problema.

.:·i,/. El
punto en ell programa en el oual ocurre una excepción
.& se conoce como punto de lanzamiento.

En Java se puede preparar el código susceptible a provocar errores de


ejecución de modo que si ocurre una excepción, el código es lanzado

31
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

(throw) a una determinada rutina previamente preparada por el


programador, que permite manipular esa excepción. Si la excepción no
fuera capturada, la ejecución del programa se detendría
irremediablemente. (Sánchez, J., 2004).

4.2.2 Jerarquía de excepciones en Java

. 'A_. . Todas las clases die excepciones heredan, ya sea en forma


directa o indirecta, de la clase Exception, formando una
jerarquía de herencias. los programadores pueden extender
esta jerarquía para crear sus propias olases de excepciones.
( Deltel, P. y Deitell, M ., 2008).

• ;
l. aS
1
u e ....
En Java hay muchos tipos de excepciones (de operaciones
de entrada y salida, de operaciones irreales. El paquete
java.lang.Exception y sus subpaquetes contienen todos los
tipos de excepciones. Cuando se produce un error se genera
un objeto asociado a esa excepción. Este objeto es de la
clase Exception o de alguna de sus herederas. Este objeto se
pasa al código que se ha definido para manejar la excepción.
Dicho código puede manipular las propiedades del objeto
Exception.

Hay una clase, la java.lang.Error y sus subclases que sirven para definir
los errores irrecuperables más serios. Esos errores causan parada en el
programa, por lo que el programador no hace falta que los manipule.
Estos errores los produce el sistema y son incontrolables para el
programador. Las excepciones son fallos más leves, y más
manipulables. (Sánchez, J., 2004).

32
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

Ilustración 1. Jerarquía de las clases de manejo de excepciones

lhrowablc

Fuente: https://docplayer.es/12392632-Excepciones-en-java-las-sentencias-que-
tratan-las-excepciones-son-try-y-catch-la-sintaxis-es.html

La cllase Throwable es la supercllase de la clase Exception


y, por lo tanto, es también la superclase de todas las
excepciones. Sólo pueden usarse objetos Throwable con
el mecanismo para manejar excepciones.

33
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

La clase Throwable tiene dos subclases: Exception y


Errior. La clase Exception y sus subclases representan
situaciones excepcionales que podrían ocurrir en un
programa de Java y ser atrapados por la aplicación.

La clase Error y todas sus subclases representan situaciones


excepcionales que podrían ocurrir en el sistema en tiempo de ejecución
de Java. Los errores tipo Error ocurren con poca frecuencia y, por lo
general, no deben ser atrapados por una aplicación.

, Java clasifica a las excepciones en dos categorías:

e•
aS excepciones verificadas y excepciones no verificadas. Esta
distinción es importante, ya que el compilador de Java

u e ....1
implementa un requerimiento de atrapar o declarar para
las excepciones verificadas. El tipo de una excepción
determina si es verificada o no verificada.

e
• �

aS
u e ....1
A diferencia de las excepciones verificadas, el compilador de
Java no verifica el código para determinar si una excepción no
verificada se atrapa o se declara. Por lo general, las excepciones
no verificadas se pueden evitar mediante una codificación
apropiada. Todos los tipos de excepciones que son subclases
directas o indirectas de la clase RuntimeException (paquete
java.lang) son excepciones no verificadas. Todas las clases que
heredan de la clase Exception pero no de la clase
RuntimeException se consideran como excepciones verificadas;
y las que heredan de la clase Error se consideran como no
verificadas. (Deitel, P. y Deitel, M., 2008).

34
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

4.2.3 Sentencias para detectar, indicar y manejar excepciones

·'i· Las sentencias que tratan las excepciones son try


finally.
r catch y

La sintaxis es:

try {
sentencias-que-pueden-producir-una-excepción;
} catch (Excepción-tipo-1 e) {
sentencias-para-excepción-tipo-1;
} catch (Excepción-tipo-2 e) {
sentencias-para-excepción-tipo-2;
} catch (Excepción-tipo-3 e){
sentencias-para-excepción-tipo-3;
} finally {
sentencias-que-se-ejecutan-si-hay-excepción-o-no;
};


....,.._ Un biloque catch empieza con la palabra clave catch y un
parámetro de excepción, seguido de un bloque de código
que atrapa (es decir, recibe) y maneja la excepción. Este
código se ejecuta cuando el bloque try detecta la excepción.
( Deitel, P. y Deitel, M ., 2008).

En una sentencia try-catch-finally, los bloques catch se pueden repetir


tantas veces como excepciones de distinto tipo se desee atrapar. El
bloque finally es opcional y solo puede aparecer una vez. Este bloque se
ejecuta siempre.

35
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA


.... Si ocurre una excepción en un bloque trv, éste termina de inmediato
y el control del programa se transfiere al primero de los siguientes
bloques catch cuyo parámetro de excepción coincida con el tipo de la
excepción que se lanzó. (Deitel, P. y Deitel, M., 2008).

Debido a que cada catch maneja un tipo de excepción, cuando se


produce una excepción, se busca el catch que posea el manejador de
excepción adecuado, será el que utilice el mismo tipo de excepción que
se ha producido. Esto puede causar problemas si no se tiene cuidado, ya
que la clase Exception es la superclase de todas las demás. Por lo que si
se produjo, por ejemplo, una excepción de tipo AritmethicException y el
primer catch captura el tipo genérico Exception, será ese catch el que se
ejecute y no los demás.

Por eso el úlltimo catch debe ser el que capture excepciones


g1enéricas y llos primeros deben ser los más específicos.
Lógicamente si vamos a tratar a todas las excepciones (sean
dlell tipo que sean) igual, entonces basta con un solo catch
que capture objetos Exce¡otion. (Sánchez, J., 2004).

Los programas que obtienen ciertos tipos de recursos deben


devollver esos recursos al sistema en forma explícita, para evitar
las denominadas fugas de recursos. Java realiza la recolección
automática de basura en la memoria que ya no es utilizada por
los programas, evitando así la mayoría de las fuqas de memoria.
(Dettel, P. y Deit:el1 M., 2008).

La sentencia finally está pensada para limpiar el código en caso de


excepción y se ejecutan tras haberse ejecutado el catch
correspondiente. Si ningún catch capturó la excepción, entonces se

36
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

ejecutarán esas sentencias antes de devolver el control al siguiente nivel


o antes de romperse la ejecución.
Hay que tener muy en cuenta que las sentencias finally se ejecutan
independientemente de si hubo o no excepción. Es decir esas sentencias
se ejecutan siempre, haya o no excepción. Son sentencias a ejecutarse
en todo momento.

Por ello se coloca en el bloque finallly código común


para t::odas las excepciones (y también para cuando no
hay excepciones. (Sánchez, J., 2004).

4.2.4 Manejo de excepciones

1,,
Una vez que se maneja una excepción. el
control del programa no regresa al punto die
lanzerniento, ya que el bloque try ha expirado. A
esto se le conoce como el modelo de
terminación del manejo de excepciones. ''

Siempre se debe controlar una excepción, de otra forma nuestro


software está a merced de los fallos.

En la programación siempre ha habido dos formas de manejar la


excepción:

37
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

Figura 5. Formas de manejar la excepción

Reanl!ld.ación. Se puede manejar


el error y regresar de nuevo al
código que provocó el error,

]nterru pció n, En este caso se


asume que el programa ha
encontrado un error ir recupera ble.
La operación que dio lugar a la
excepción se anula y se entiende
que no hay manera de regresar al
código que provocó la excepción.
Es decir, la operación que dio pies
al error, se anula.

Fuente: UDEMEX 2019 con información de: Sánchez, J., 2004

La fllosofía de Java es del tipo interrupción, pero se


puede intentar emular la reanudación encerrando el
bloque try en un while que se repetirá hasta que el
error deje de existir. (Sánchez, J., 2004).

La clase Exception es la superclase de todos los tipos de excepciones.


Esto permite utilizar una serie de métodos comunes a todas las clases
de excepciones:
 String getMessage(). Obtiene el mensaje descriptivo de la
excepción o una indicación específica del error ocurrido:
try{
....
} catch (IOException ioe){
System.out.println(ioe.getMessage());
}

38
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

 String toString(). Escribe una cadena sobre la situación de la


excepción. Suele
indicar la clase de excepción y el texto de getMessage().
 void printStackTrace(). Escribe el método y mensaje de la
excepción (la llamada información de pila). El resultado es el
mismo mensaje que muestra el ejecutor (la máquina virtual de
Java) cuando no se controla la excepción.

...A
. "..• Al llamar a métodos, ocurre un problema con las
excepciones. ti problema es, sl el método da lugar a una
excepción, lquién la maneja? lEI propio método?lO el código
que hizo la llamada al método? Seda el propio método quien
se encargara de sus excepciones, pero esto complica el
código. ii>or eso otra posibilidad es hacer que lla excepción la
maneje ell código que hizo la llamada. Esto se hace
añadiendo la palabra throws.

Una cláusula throws especifica las excepciones que lanza el


método, y aparece después de la lista de parámetros del
método, pero antes de su cuerpo. Contiene una lista separada
por comas de las excepciones que lanzará ell método, en caso
de que ocurra un oroblema. Dichas excepciones pueden
lanzarse mediante instrucciones en el cuerpo del método, o
mediante métodos que se llamen desde el cuerpo. Un método
puede lanzar excepciones de las clases que se listen en su
cláusula throws, o en la de sus subclases.

Si ocurre una excepción en el método, el código abandona ese método y


regresa al código desde el que se llamó al método. Allí se posará en el
catch apropiado para esa excepción. (Sánchez, J., 2004).

39
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

Veamos el slquiente ejemplo

void usarArchivo (String archivo) throws IOException,


InterruptedException {...

En este caso se está indicando que el método usarArchivo puede


provocar excepciones
del tipo IOException y InterruptedException. Esto significará, además,
que el que utilice este método debe preparar el catch correspondiente
para manejar los posibles errores.

Throw New

Esta instrucción le permite al programador lanzar sus propias


excepciones.
Ante:

throw new Exception();

El flujo del programa se dirigirá a la instrucción try/catch más cercana.


Se pueden utilizar constructores en esta llamada (el formato de los
constructores depende de la clase que se utilice):

throw new Exception(“Error grave, grave”);

40
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
!:.�� · Universidad
� · Digital
del Estado de México

GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

Eso construye una excepción con el mensaje indicado, throw permite


también relanzar excepciones. Esto significa que dentro de un catch
podemos colocar una instrucción throw para lanzar la nueva excepción
que será capturada por el catch correspondiente:

try{
...
} catch(ArrayIndexOutOfBoundsException exc){
throw new IOException();
} catch(IOException){
...
}

El segundo catch capturará también las excepciones del primer tipo.

Ahora después de todo lo que has aprendido, es momento de resolver la


actividad complementaria 4.1 que te permitirá reforzar los aprendizajes
adquiridos hasta el momento.

4C Actividad Com lementaria �.1

Para posteriormente realizar la actividad de aprendizaje 4.1


correspondiente a este tema.

J � Actividad de A rendiza·e 4.1

41
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

4.3. Flujos de entrada /salida

En términos de programación se denomina entrada a la posibilidad de


introducir datos hacia un programa; salida sería la capacidad de un
programa de mostrar información al usuario. (Sánchez, J., 2004).


l.
a
u e ....1
En Java, la entrada de datos se realiza mediante un flujo de
entrada. Para realizar la entrada de datos es necesario abrir
el flujo de entrada, leer la información del flujo hasta el final
y por último cerrar el flujo. La salida se hace mediante un
flujo de salida. Para realizar la salida de datos es necesario
abrir el flujo de salida y a continuación se escribe en él toda
la información que se desee, por último, se cierra el flujo.

Un flujo en Java es un objeto que se utilliza para realizar una entrada o


salida de datos. Representa un canal de información del que se puede
leer o escribir datos de forma secuencial. Existen dos tipos de
flujos en Java, los que utilizan bytes y los que utilizan
caracteres. (Ladrón de Guevara, J., 2011).

-.a. '.
� Existen flujos con bytes y flujos con caracteres que se aplican a
la misma entrada o salida. FileinputSt:ream y Fileüut::put::Stream
son flujos para leer y escribir bytes en un fichero, fileReader y
FileWriter también son flujos que se aplican a ficheros, pero en
este caso para lleer y escribir caracteres.

Los problemas de entrada / salida suelen causar excepciones de tipo


IOException o de sus derivadas. Con lo que la mayoría de operaciones
deben ir inmersas en un try.

42
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

4.3.1 Flujos de entrada y salida de datos de Java

e• ;as El flujo de entrada System.in, permite a las aplicaciones de


Java leer la información escrita por el usuario. System.in lee
los datos que se introducen en el teclado. Si este flujo se

1
pasa como argumento a una instancia de la clase Scanner,
Ue permite realizar la lectura de datos del teclado. Basta con
••• • utilizar los métodos next(), nextline() y nextlnt() para leer
una palabra, una línea y un número entero,
respectivamente.

A continuación se muestra el uso de la clase Scanner y el flujo de


entrada del teclado System.in. Para utilizar la clase Scanner en un
programa Java es necesario importar la librería java.util.Scanner.

Suponga que se desea realizar un programa que pide un nombre, el día,


el mes y el año de la fecha de nacimiento de una persona. En este
programa se declara una instancia de la clase Scanner, con nombre
entradaTeclado que se inicializa con el flujo de entrada del teclado
System.in.

Veamos el síqulente ejemplo

Scanner entradaTeclado = new Scanner(System.in);

La clase Scanner ofrece los métodos next(), nextLine() o nextInt(),


entre otros. El método next() lee una palabra, el método nextLine() lee
una línea completa y el método nextInt() lee un número de tipo entero.

43
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

La variable nombre de tipo String se inicializa con el nombre que se


introduce en el teclado. Como se invoca el método nextLine() de
entradaTeclado, se lee toda la línea, de manera que la variable nombre
almacena tanto el nombre como los apellidos de la persona.

System.out.print("¿Cómo te llamas? ");


nombre = entradaTeclado.nextLine();

Las variables numéricas de tipo int diaNacimiento, mesNacimiento y


añoNacimiento se inicializan con el valor numérico introducido,
invocando el método nextInt() de entradaTeclado.

System.out.print("¿Qué día naciste? ");


diaNacimiento = entradaTeclado.nextInt();

import java.util.Scanner;
public class EntradaDatosTeclado {

public static void main(String args[]) {


String nombre;
int diaNacimiento, mesNacimiento, añoNacimiento;

// inicialización de la instancia de Scanner con el flujo de


// entrada del teclado

Scanner entradaTeclado = new Scanner(System.in);


System.out.print("¿Cómo te llamas? ");
nombre = entradaTeclado.nextLine();
System.out.print("¿Qué día naciste? ");

44
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

diaNacimiento = entradaTeclado.nextInt();
System.out.print("¿En qué mes? ");
mesNacimiento = entradaTeclado.nextInt();
System.out.print("¿En qué año? ");
añoNacimiento = entradaTeclado.nextInt();
System.out.println("Hola " + nombre + ", naciste el " +
diaNacimiento + "/" + mesNacimiento + "/" + añoNacimiento);
}
}

Una vez introducidos todos los datos, el programa muestra un mensaje


por la consola con el nombre y fecha de nacimiento.

Hola Juan, naciste el 10/12/1982

4.3.2 Leer y escribir en ficheros de texto

as
� La lectura y escritura de datos en un fichero de texto requiere
e •
el uso de las clases PrintWriter, File y Scanner. Para escribir en
un fichero de texto es necesario utilizar la clase PrintWriter.
1 Esta
. clase permite crear un fichero de texto para almacenar
U e .. • datos. Esta clase ofrece los métodos print() y println() para
escribir datos en el fichero. El método close() cierra el fichero
de datos.

Veamos el slnulente ejemplo

45
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

Por ejemplo, para escribir un array de números enteros en un fichero de


texto, es necesario crear una instancia de la clase PrintWriter.

int[][] numeros = { { 1, 2, 3, 4, 5},


{ 6, 7, 8, 9, 10},
{11, 12, 13, 14, 15},
{16, 17, 18, 19, 20},
{21, 22, 23, 24, 25}};

// la instancia ficheroSalida de la clase PrintWriter


// crea y escribe en el fichero "c:\\Numeros.txt"

String idFichero = "c:\\Numeros.txt";


PrintWriter ficheroSalida = new PrintWriter(idFichero);

// el for anidado escribe en ficheroSalida los elementos


// del array separados por el carácter ","

for (int i=0; i<numeros.length; i++) {


for (int j=0; j<numeros[i].length; j++)
ficheroSalida.print(numeros[i][j] + ",");
ficheroSalida.println("");
}
ficheroSalida.close();

El for anidado escribe todos los elementos del array en el fichero de


texto.

46
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

Al finalizar se invoca al método close() del objeto ficheroSalida para


cerrarlo.

El contenido del fichero de texto Numeros.txt.

1,2,3,4,5,
6,7,8,9,10,
11,12,13,14,15,
16,17,18,19,20,
21,22,23,24,25,

·&·
1
La clase File ofrece el método exists() para saber si un fichero existe o
no. Para leer el contenido del fichero se crea una instancia de la clase
Scanner que recibe como argumento la instancia del fichero de texto.

La clase Scanner ofrece el método hasNext() para saber si hay más


elementos que leer y next() para leer el siguiente elemento.

"'A"" La clase StringTokenizer facilita la división de una cadena de texto en


;. M ;

componentes separados por espacios o por un carácter delimitador. En


este ejemplo se crea una instancia con el delimitador "".

Cuando se realiza una operación de lectura o escritura de un fichero es


necesario gestionar las excepciones. Durante la lectura o escritura de un
fichero se puede producir una excepción de tipo IOException.

47
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA


e Para utilizar las clases PrintWriter, File, Scanner,
StringTokenizer, IOException es necesario
importar los siguientes paquetes:

import java.io.PrintWriter;
import java.io.File;
import java.util.Scanner;
import java. util .StringTokenizer;
import java.io.IOException;

Para abrir un fichero de texto se crea una instancia de la clase File. El


contenido del fichero se lee con una instancia de la clase Scanner. Como
los números almacenados en el fichero están separados por comas, se
utiliza una instancia de StringTokenizer para leer cada número.

Veamos el síqulente ejemplo

String idFichero = "c:\\Numeros.txt";


File ficheroEntrada=new File (idFichero);
if (ficheroEntrada.exists()) {
Scanner datosFichero = new Scanner(ficheroEntrada);

System.out.println("Números del fichero");


while (datosFichero.hasNext()) {
StringTokenizer numerosFichero = new
StringTokenizer(datosFichero.next(),",");
while (numerosFichero.hasMoreTokens())
System.out.print(numerosFichero.nextToken() +
"\t");
System.out.println("");

48
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

}
datosFichero.close();
}
else
System.out.println("¡El fichero no existe!");

import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.io.PrintWriter;
public class LecturaEscrituraFichero {
public static void main(String[] args) throws IOException {
int[][] numeros = { { 1, 2, 3, 4, 5},
{ 6, 7, 8, 9, 10},
{11, 12, 13, 14, 15},
{16, 17, 18, 19, 20},
{21, 22, 23, 24, 25}};
String idFichero = "c:\\Numeros.txt";
PrintWriter ficheroSalida = new PrintWriter(idFichero);
for (int i=0; i<numeros.length; i++) {
for (int j=0; j<numeros[i].length; j++)
ficheroSalida.print(numeros[i][j] + ",");
ficheroSalida.println("");
}
ficheroSalida.close();
File ficheroEntrada = new File (idFichero);

if (ficheroEntrada.exists()) {

49
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

Scanner datosFichero = new Scanner(ficheroEntrada);


System.out.println("Números del fichero");
while (datosFichero.hasNext()) {
StringTokenizer numerosFichero = new
StringTokenizer(datosFichero.next(),",");
while (numerosFichero.hasMoreTokens())
System.out.print(numerosFichero.nextToken() +
"\t");
System.out.println("");
}
datosFichero.close();
}
else
System.out.println("¡El fichero no existe!");
}
}

El resultado de leer el fichero de texto:

Números del fichero


12345
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

4.3.3 Leer y escribir objetos en ficheros

50
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

La lectura y escritura de objetos en un fichero binario


• ;

'
requiere el uso de las clases FileOutpusStream y
aS ObjectOutputStream. La clase ObjectOutputStream

u e ....1
permite escribir objetos en un fichero utilizando el método
writeObject (Object o). Los datos que se almacenan en el
fichero de salida tienen un formato binario distinto de los
OOcctrl)� s de texto. El método close() de la clase
ObjectOutputStream cierra el fichero de datos.

e• ;
Para escribir objetos utilizando la clase ObjectOutputStream
aS es necesario codificar los objetos dentro del flujo de salida.

1
u e ....
A la codificación de los objetos dentro de un flujo de
entrada o salida se le denomina "serialización". Para que los
obietos de una clase sean "serializables" es necesario
OOcctrl)�nentar la interfaz Serializable de Java.

Para leer objetos almacenados en un fichero binario se utiliza el método


readObject() de la clase ObjectInputStream. Después de leer el objeto
del fichero se debe convertir a la clase a la que pertenece.

Para lleer objetos almacenados en un fichero binario se utilliza


el método readübject() de la clase Objectl nput'Strearn.
Después de leer el objeto del fichero se debe convertir a la
clase a la que pertenece .


..�. Cuando se utilizan los flujos ObjectinputStream y
ObjectOutputStream de Java es necesario atrapar los errores de
ejecución que se producen mientras se lee o escribe el fichero de
datos con los flujos de entrada y salida. Para atrapar los errores
de ejecución o excepciones, se utilizan las sentencias try y catch.

Para escribir un objeto de la clase Persona en un fichero binario, es


necesario indicar que esta clase es “serializable”, es decir, que sus
objetos se codifican dentro de los flujos de entrada y salida de Java.

51
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

Para indicar que la clase Persona es “serializable” se modifica su


declaración indicando que implementa la interfaz Serializable.

Veamos el siqulente ejemplo

public class Persona implements java.io.Serializable {


}

La declaración completa de la clase Persona, con la implementación de


la interfaz Serializable, su método constructor y sus métodos ‘get’ y
‘set’.

public class Persona implements java.io.Serializable {


private String dni;
private String nombre;
private String apellidos;

public Persona(String dni, String nombre, String apellidos) {


this.dni = dni;
this.nombre = nombre;
this.apellidos = apellidos;
}

public String getDNI() {


return this.dni;
}

52
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

public String getNombre() {


return this.nombre;
}

public String getApellidos() {


return this.apellidos;
}

public String getAtributos() {


return this.getDNI() + " " + this.getApellidos() + ", " +
this.getNombre();
}
}

Para escribir un objeto de la clase Persona en un fichero de texto se


utilizan las clases FileOutputStream y ObjectOutputStream. Se crea una
instancia de la clase FileOutputStream para inicializar la instancia
objetoSalida de ObjectOutputStream que escribe en el fichero binario
Objetos.dat.

String nombreFichero = "c:\\Objetos.dat";


try {
FileOutputStream ficheroSalida = new
FileOutputStream(nombreFichero);
ObjectOutputStream objetoSalida = new
ObjectOutputStream(ficheroSalida);
// se escriben dos objetos de la clase Persona
objetoSalida.writeObject(new Persona("55287188B",

53
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

"María", "Ruiz Ramos"));


objetoSalida.writeObject(new Persona("40302010A",
"Juan", "González López"));
objetoSalida.close();

} catch (FileNotFoundException e) {
System.out.println("¡El fichero no existe!");
} catch (IOException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
};

Para leer los objetos almacenados en el fichero binario se utilizan las


clases FileInputStream y ObjectInputStream. Se crea una instancia de la
clase FileInputStream para inicializar la instancia objetoEntrada de
ObjectInputStream.

try {
FileInputStream ficheroEntrada = new
FileInputStream(nombreFichero);
ObjectInputStream objetoEntrada = new
ObjectInputStream(ficheroEntrada);
// se leen dos objetos de la clase Persona
Persona p1 = (Persona)objetoEntrada.readObject();
Persona p2 = (Persona)objetoEntrada.readObject();
// se cierra el flujo de objetos objetoEntrada
objetoEntrada.close();

54
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

System.out.println("DNI\t Nombre");
System.out.println(p1.getAtributos());
System.out.println(p2.getAtributos());
} catch (FileNotFoundException e) {
System.out.println("¡El fichero no existe!");
} catch (IOException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
};
La salida por la consola:

DNI Nombre
55287188B Ruiz Ramos, María
40302010A González López, Juan

Recordemos:
Las sentencias try y catch
se utilizan para atrapar las
excepciones que se producen
durante la ejecución del
programa:
FileNotFoundException,
IOException o Exception.

El paquete java.io contiene todas las clases relacionadas con las


funciones de entrada (input) y salida (output).

55
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

Ilustración 2. Clases e interfaces del paquete java.io

¡•
1
L t
\:
1 '
l
i
1 •
\ i
1

&t1W ---f§h:MM11

1§1

Fuente: https://docplayer.es/10363603-Fundamentos-de-programacion-unidad-7-
herencia-y-relaciones-entre-clases.html

56
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

4.4 AWT y Swing

Una interfaz gráfica de usuario GUI (Graphic User Interface o Interfaz


Gráfica de Usuario) presenta un mecanismo amigable al usuario para
interactuar con una aplicación. Una GUI proporciona a una aplicación
una apariencia visual única. Un componente de la GUI es un objeto con
el cual interactúa el usuario mediante el ratón, el teclado u otra forma
de entrada, como el reconocimiento de voz. (Deitel, P. y Deitel, M.,
2008).

Veamos el slnulente ejemplo

Como ejemplo podemos nombrar una ventana del navegador Web


Microsoft Internet Explorer, con algunos componentes de la GUI
etiquetados. En la parte superior hay una barra de título que contiene el
título de la ventana. Debajo de la barra de título hay una barra de
menús que contiene menús (Archivo, Edición, Ver, etcétera). Debajo de
la barra de menús hay un conjunto de botones que el usuario puede
oprimir para realizar tareas en Internet Explorer. Debajo de los botones
hay un cuadro combinado; donde el usuario puede escribir el nombre de
un sitio Web a visitar, o hacer clic en la fl echa hacia abajo, que se
encuentra del lado derecho, para ver una lista de los sitios visitados
previamente. Los menús, botones y el cuadro combinado son parte de la
GUI de Internet Explorer. Éstos le permiten interactuar con el navegador
Web.

57
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

. ,
/. 3 aS Existen dos conjuntos de componentes de GUI en Java. Antes de
1
u e...•
introducir a Swing en Java SE 1.2, las GUls de Java se creaban a
partir de componentes del Abstract Window Toolkit (AWT) en el
paquete java.awt. (Deitel, P. y Deitel, M., 2008}. Tanto Swing
como AWT forman parte de una colección de clases llamada JFC
(Java Foundation Classes} que incluyen paquetes dedicados a la
programación de interfaces gráficos (así como a la producción
multimedia).

Uno de los problemas frecuentes de la programación clásica era como


programar interfaces de usuario, ya que esto implicaba tener que
utilizar las API (Application Programming Interface) propias del Sistema
Operativo y esto provocaba que el código no fuera transportable a otros
sistemas. AWT fue la primera solución a este problema propuesta por
Java. AWT está formada por un conjunto de clases que no dependen del
sistema operativo, pero que proponen una serie de clases para la
programación de GUIs .

e• ;

aS
u e...1 eAWT usa clases gráficas comunes a todos los sistemas
operativos gráficos y luego la máquina virtual traduce esa clase
a la forma que tenga en el sistema concreto en el que se ejecutó
el programa, sin importar que dicho sistema sea un sistema X,
Mclntosh o Windows. La popularidad de AWT desbordó las
expectativas de la propia empresa Sun. La clave de AWT era el
uso de componentes iguales (peers). Los elementos de los
interfaces AWT dejaban al sistema la responsabilidad de generar
realmente los componentes. Eso aseguraba una vista coherente
respecto al sistema en el que se ejecutaba el programa. El
problema es que ante la grandiosidad de la imagen en Windows
y Mac OS, otros sistemas quedaban peor ante la misma
aplicación. (Sánchez, J., 2004).

58
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

• ;

e aS
u e....1 Por ello (y por otros problemas) aparece Swing en la
versión 1.2 como parte del JFC (Java Foundation Classes)
que es el kit de clases más importante de Java para las
producciones gráficas.

Los problemas de AWT eran:


AWT tenía problemas de compatibilidad en varios
sistemas.
A AWT le faltaban algunos componentes avanzados
(árboles, tablas, ... ).
Consumía excesivos recursos del sistema.

Swing aporta muchas más clases, consume menos recursos


y construye mejor la apariencia de los programas. En
cualquier caso, AWT no desaparece; simplemente se añade
a las nuevas capacidades Swing componentes.

4.4.1 Componentes

Los componentes son los elementos básicos de la programación con


Swing. Todo lo que se ve en un GUI de Java es un componente. Los
componentes se colocan en otros elementos llamados contenedores que
sirven para agrupar componentes. Un administrador de diseño se
encarga de disponer la presentación de los componentes en un
dispositivo de presentación concreto. (Sánchez, J., 2004).

59
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

Ilustración 3. Los componentes básicos de la programación con Swing

orll\cn,ltem

Fuente: http://programandoenjava.over-blog.es/article-i-51475428.html

La mayoría de los componentes de GUI extienden la clase Component


de manera directa o indirecta. La clase Container (paquete java.awt) es
una subclase de Component. Los objetos Component se adjuntan a
60
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

objetos Container (como las ventanas), de manera que los objetos


Component se puedan organizar y mostrar en la pantalla. Cualquier
objeto que sea un Container se puede utilizar para organizar a otros
objetos Component en una GUI. Como un Container es un Component,
puede adjuntar objetos Container a otros objetos Container para ayudar
a organizar una GUI.

. ....,- .Laclase Component (paquete java.awt) es una subclase de


Object que declara muchos de los atributos y comportamientos
comunes para los componentes de GUI en los paquetes java.awt y
javax.swing. (Deltel, P. y Deitel, M., 2008) .

. .:&• . . La
clase javax.swing.JComponent es la clase padre de
todos los componentes. A su vez, JComponent desciende de
java.awt.cont::ainer y ésta de java.awt.cornponent. De esto
se deduce que Swing es una extensión de AWT, de hecho su
estructura es análoga .

.,
e•
aS
1 La clase JComponent posee métodos para controlar la
u e ....
apariencia del objeto.

Por ejemplo: la visibilidad, tamaño, posición, tipo de letra,


color, ...

Al dibujar un componente, se le asigna un dispositivo de


presentación. Además posee métodos que controlan el
comportamiento del componente. Cuando el usuario ejecuta
una acción sobre un componente, entonces se crea un objeto
de evento que describe el suceso. El objeto de evento se
envía a objetos de control de eventos (Listeners). Los
eventos son uno de los pilares de la construcción de
Interfaces de usuario y una de las bases de la comunicación
entre objetos. ( Sá nchez, J., 2004).

61
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

Figura 6. Componentes básicos de GUI

Algunos JLabel. Muestra textoque no puede editarse, o íconos,


componentes
básicos de
GUL

JTextField. Permite al usuario introducir datos mediante eltedado.


También se puede utilizar para mostrar texto que puede o no editarse.

JButton.Activa un evento cuandose oprime mediante el ratón.

JCheckBox. Especifica una opción que puede seleccionarseo no


seleccíonarse,

JComboBox. Propor,ciona una lista desplegable de elementos, a partir de


los cuales el usuario puede realizar una selección, haciendo clic en un
elemento o posiblemente escribiendo en el cuadro.

Jlist Proporciona una listad e elementos a partir de los males el usuario


puede realizar una selección, haciendo dicen cualquier elemento en la
lista. Pueden selecdonarsavaríos elementos.

JPanel Proporciona un área en la que pueden colocarse y organizarse los


componentes. También puede utilizarse como un área de dibujo para
gráficos.

Fuente: UDEMEX 2019 con información de: Sánchez, J., 2004

62
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

4.4.2 Comparación entre componentes de GUI ligeros y pesados

,
e•
aS
1
u e .... l a mavorfa de los componentes de Swing no están enlazados a los
c���t�)-�
antes reales de GUI que soporta la plataforma subyacente
en la cual se ejecuta una aplicación. Dichos componentes de la GUI
se conocen como componentes ligeros. Los componentes de AWT
(muchos de los cuales se asemejan a los componentes de Swing)
están enlazados a la plataforma local y se conocen como
componentes pesados, ya que dependen del sistema de
ventanas de la plataforma local para determinar su funcionalidad y
su apariencia visual. (Deitel, P. y Deitel, M., 2008).

Varios componentes de Swing son componentes ligeros. Al igual que los


componentes de AWT, los componentes de GUI pesados de Swing
requieren interacción directa con el sistema de ventanas locales, el cual
puede restringir su apariencia y funcionalidad, haciéndolos menos
flexibles que los componentes ligeros.

La siguiente tabla muestra algunas de las características


comunes para los componentes ligeros que soporta JComponent
son:

63
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

Figura 7. Características comunes para los componentes ligeros que soporta


JComponent

Características
1. Una apariencia visual adaptable, la cual puede utilizarse para
comunes paira los
componentes personalizar la apariencia de los componentes {por ejemplo, para
ligeros que soporta usarlos en plataformas específicas).
JCompone111t

2. Teclas de método abreviado {llamadas nemónioos) para un


acceso directo a los oomponentes de la GUI por medio del teclado.

3. Herramientas manejadoras de eventos oomunes, para casos en


los que varios componentes de la GUI inician las mismas acciones
en una aplicación.

4. Breves descripciones del propósito de un componente de la GUI


(lo que se conoce oomo cuadros de información sobre herramientas
o tool tips) que se muestran cuando el cursor del ratón se coloca
sobre el componente durante un breve periodo.

5. Soporte para tecnologías de ayuda, oomo lectores de pantalla


Braille para las personas con impedimentos visuales.

6. Soporte para la localización de la interfaz de usuario; es decir,


personalizar la interfaz de usuario para mostrarla en distintos
lenguajes y utilizar las convenciones de la cultura local.

Fuente: UDEMEX 2019 con información de: Sánchez, J., 2004

64
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

4.4.3 Métodos de JComponent

La clase JComponent es abstracta, lo cual significa que no


• ;
(.
aS puede crear objetos, pero sí es la superclase de todos los
componentes visuales (botones, listas, paneles, applets, ... ) y

u e ....1 por ello la lista de métodos es interminable, ya que


proporciona la funcionalidad de todos los componentes.
Además puesto que deriva de Component y Container tiene
los métodos de estos, por ello aún es más grande esta lista.

Contenedores

Son un tipo die componentes pensadlos para almacenar y


manejar otros componentes. Los objetos JComponent
pueden ser contenedores al ser una clase que desciende die
Container que es la clase de los objetos contenedores die
AWT.

Para hacer que un componente forme parte de un contenedor,


se utiliza el método add. Mientras que el método remove es el
encargado de elimirnar un componente.

Ambos métodos proceden de la clase java.awt.Container

65
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

Figura 8. Contenedores especiales de swing

Swing posee .JWindow. Representa un panel de ventana sin bordes ni


algunos elementos visibles.
contenedores
especiales.

JFraFTile. Objeto que representa una ventana típica con bordes,


botones de cerrar.ate.

JPanel. Es la clase utilizada como contenedor genérico para


agrupar componentes.

JDialog. Clase que genera un cuadro de diálogo.

JApplet. Contenedor que agrupa componentes que serán


mostrados en un navegador.

Fuente: UDEMEX 2019 Sánchez, J., 2004

Es momento de resolver la actividad complementaria 4.2 que te


permitirá reforzar los aprendizajes adquiridos hasta el momento

tC Acti idad Com


Para posteriormente realizar la actividad de aprendizaje 4.2
correspondiente a este tema.

J � Actividad de A rendiza·e 4.2

66
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

RESUMEN UNIDAD 4

Esta unidad se puede resumir de la siguiente manera:

Estructuras de
almacenamiento
Obtuviste un panorama general la estructura de
almacenamiento de Java denominada array.
Se mostró el manejo de excepciones para
resolver los problemas que ocurren durante la
ejecución de un programa en Java.

Se presentaron los objetos de Java, que se


utilizan para realizar una entrada o salida de
datos, denominados Flujos de entrada y salida.

Finalmente pudiste los dos conjuntos de


componentes de GUI en Java, Swing y AWT
dedicados a la programación de interfaces
gráficos, así como a la producción multimedia.

67
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
Universidad
Digital
del Estado de México

GOBIERNO DEL
ESTADO DE MÉXICO
UNIDAD 4. PROGRAMACIÓN EN JAVA

Ahora te invito a realizar la actividad integradora, que te permitirá poner


en práctica las habilidades adquiridas durante el desarrollo de la unidad
de aprendizaje.

Acti idad Inte radora

CRITERIOS DE EVALUACIÓN DE LA UNIDAD 4

( TEMA (S) ACTIVIDAD DE APRENDIZAJE VALOR

4.1. Estructuras de almacenamiento.. 5%


Algoritmos de arreglos
4.2. Excepciones.

4.3. Flujos de entrada /salida. Programa una clase 5%


4.4. AWT y Swing

TOTAL
10'14,
UNIDAD 4

68
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63
u� � o· Universidad
eM de'L 1ta1
de Méxk:o

GOBIERNO DEL
ESTADO DE MÉXICO UNIDAD 4. PROGRAMACIÓN EN JAVA

REFERENCIAS ANEXAS AL PROGRAMA

1. Deitel, P. y Deitel, M. (2008). Cómo programar en Java. Séptima


edición. Pearson Educacion, México. ISBN: 978-970-26-1190-5

2. Ladrón de Guevara, J. (2011). Fundamentos de programación en


Java. Universidad Complitense de Madrid. España. Recuperado el
10 de enero de 2014, de:
http://www.etnassoft.com/biblioteca/fundamentos-de-
programacion-en-java/ Archivo descargable:

Sánchez, J. (2004). Java2 incluye Swing, Threads, programación en red,


JavaBeans, JDBC y JSP / Servlets España. Recuperado el 10 de enero de
2014, de:
http://www.jorgeSánchez.net/programacion/manuales/Java.pdf Archivo
descargable:

69
AV. JOSÉ MA. MORELOS PTE. NO. 905
SECRETARÍA DE EDUCACIÓN
TERCER PISO COLONIA LA MERCED
SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR
TOLUCA, ESTADO DE MÉXICO, C.P. 50080
UNIVERSIDAD DIGITAL DEL ESTADO DE MÉXICO
TELÉFONO 318-48-63

También podría gustarte