Documentos de Académico
Documentos de Profesional
Documentos de Cultura
y Métodos
Programación
Orientada a
Objetos
1
Más sobre clases
Las clases como forma de encapsular
En Java, las clases son usadas para agrupar y manejar los detalles de
métodos relacionados. Por ejemplo, la clase de sistema provista por el JDK,
java.lang. Math, contiene funciones matemáticas simples y funciones
trigonométricas entre otras. De manera similar, cuando construimos un
programa, escribimos una sola clase que contiene todos los métodos que
sirven para correr nuestro programa.
Una aplicación típica de POO debiera consistir en varias clases y una de ellas,
solo una, contener el único punto de inicio: el método main junto a los
métodos generales, es decir que sirven a toda a la aplicación, por ejemplo,
como un menú de llamada a los distintos métodos ubicados en las restantes
clases de la aplicación. Cuando todos los métodos que necesitamos han sido
escritos, deberán ser convocados desde esta clase principal. Esta clase es
nuestro programa. Las clases, a su vez, pueden estar contenidas en packages
(paquetes). Las clases de sistema, por ejemplo la clase Math mencionada
antes, se encuentra en el package java.lang. A veces, el nombre de la clase
es interpretado como el path de directorios donde está ubicado el package.
La mayoría de los programadores escriben sus clases dentro del directorio
donde están trabajando. Este es llamado el default package (paquete por
defecto). Todas las clases dentro del default package están disponibles para
el programa principal (o la clase donde está el método main). Luego, es
posible que un programa esté compuesto por métodos guardados en
diferentes clases. En un videojuego uno podría imaginar que una clase
contiene todos los métodos que soportan los gráficos, otra guarda los
métodos de puntuación y la última guarda las rutinas relacionadas con el
dispositivo de input (teclado, mouse, etc.). Con esto queda claro que el
método main debe ser declarado public, de otra forma no podríamos correr
el programa.
Nombres de métodos
Los programas grandes conllevan un esfuerzo importante en su
planificación. En la práctica, la construcción de programas no triviales
requiere el uso de un gran número de componentes, usualmente asociados
La estructura de un
a diferentes funciones lógicas o distintos objetos dentro de los programas.
programa debería
modelar la estructura
del problema. En Java este tipo de modularización depende fuertemente del uso de
métodos.
2
Si consideramos que tenemos que realizar las siguientes tareas de
programación:
El cálculo de una lista del primer millón de números primos. Es claro que
un componente de ese programa es calcular si un número es o no primo.
La construcción de un procesador de textos.
El manejo de la ventana de ayuda es una porción lógica aislada del
programa.
El lanzamiento de una nave espacial. Las pruebas previas al vuelo las hace
(en algún nivel) una entidad lógica aislada. A su vez, estas pruebas pueden
estar agrupadas en varios módulos.
La palabra reservada static indica que este método siempre está disponible.
3
Métodos: ¿procedimientos o funciones?
La palabra reservada void indica que, una vez completado, el método no deja
o devuelve nada, los métodos que tienen esta definición se llaman
procedimientos, como veremos enseguida.
4
Como un ejemplo de declaración de un método, consideremos la
declaración del método cos que está dentro de la clase Math. Su declaración
es:
Vale aclarar que estamos viendo declaraciones en sus clases de origen y que
para ser usados, Java debe conocer la clase de origen que lo contiene, en
algún caso con Math.’nombre’ y en otros casos con el prefijo de un objeto
creado a partir de la clase correspondiente.
5
Es claro que este procedimiento tiene un finalidad muy simple. Al usuario (el
programador) no le interesa conocer los detalles de implementación y por
lo tanto, preferirá usar este método. Estos detalles son, por ejemplo, que el
tiempo en Java se mide en milisegundos o que necesitamos un ciclo para
implementar el procedimiento. Para llamar, ejecutar o invocar este
procedimiento, tipeamos el nombre seguido por una lista vacía de
parámetros:
6
Nosotros especificamos el parámetro real cuando llamamos a un
procedimiento.
espereNSegundos(60/5);
7
Referencias
Bailey, D. A., & Bailey, D. W. (2000). “Methods” (pp. en Bailey, D. A. “Java
Elements: Principles of Programming in Java”. Boston, MA: Mc Graw Hill