Copigo NaTIVO
Java permite al desarrollador de software incluir cédigo escrito en otros lengua
jes, en particular C, como paite de programa en Java. Para ello, se aplica el mo-
ificador native a las declaraciones de los métodos que son implementados de
manera nativa en C 0 algiin otro lenguaje, pero no en Java, Al igual que un mé-
todo abstracto, se agregs un punto y coma al final de una declaraci6n nativa,
SINCRONIZACION
Al igual que otros lenguajes, Java permite procesar miiltiples objetas y métodos
de manera concurrente dentro de una aplicacién mediante el uso de multiples
ilos (threads) de control. La concurrencia en el procesamiento requiere de sin-
cronizacién de los bloques afectados. Para ello, Java incluye el modificador
synchronized, el cual especifica una secciOn critica de procesamiento que no
puede interrumpirse durante su ejecucién.
SERIALIZACION
Como apoyo al procesamiento distribuido de aplicaciones, Java permite enviar
objetos entre diversos procesos. Este envio se facilita mediante el uso de la in-
terface serializable, la cual debe ser incluida en la implementacién de la clase
afectada.
FINALIZADOR
Existe en Java un método de finalizacién de clase llamado finalize. El objetivo
del finalizador, de manera complementaria al constructor, es cerrar; por ejem-
plo, archivos 0 sockets que se encuentren abiertos. Un finalizador se veria de
la siguiente forma:
Protected void finalize() throws IOException {
if (fd I= nul) closeQ;
}
Java llama a un finalizador una sola vez por objeto. El método finalizador se
llama por lo general antes de la recoleccién de basura; sin embargo, Java no
garantiza el orden de estas lamadas, y cualquier recurso atin no cerrado 0 re-
colectado seria liberado al terminar el programa
5.4 UML y Java
5.4.1 Objetos y clases
Todo programa de Java debe incluir clases, por lo que es necesario considerar
diversos aspectos de éstas, como se describid en el capitulo 4. Utilizamos la no-
tacién UML para representar una clase, como se ilustra en {a figura 5.2
(Race)
Figura 5.2 Notacion de UML para una clase.
CAP, 5 — PROGRAMACION ORIENTADA A OBJETOS CON JAVA