Guía para solucionar los errores de sintaxis más comunes en Programación Modular.
¡Qué problema! Acabas de sumergirte a eso de la programación modular y resulta que te encuentras con un montón de errores de sintaxis. Ese programa que funcionaba muy bien al ser dividido en métodos ahora ya no funciona. (No sé por qué a l@s profes se les ha de ocurrir usar métodos, si todo funcionaba muy bonito desde main)
¡Y luego aparte quiere que uses parámetros, como si no fuera suficiente!
Ok, no sufras, para eso he creado esta entrada de blog, para que entiendas que te quiere decir Java con tantos errores y puedas corregirlos posteriormente.
Aprendiendo de los errores.
Ante todo, calma. Una situación común de los estudiantes de programación es que cuando ven errores, entran en pánico.
Como diría el gran Aaron Rodgers (futbol americano, qb de los Green Bay Packers): R E L A X!
En serio, de los errores se aprende mucho, y a programar más. Cuando ya sabes corregir los errores de sintaxis o de lógica de tu programa es cuando en realidad comienzas a avanzar y a aprender, en todo el sentido de la palabra. ¡ES CUANDO ESTÁS HACIENDO TUYO EL CONOCIMIENTO! Todo lo que te repiten en clase, lo que has leído, no tiene sentido hasta que ese conocimiento no se vuelva tuyo, y eso no pasa hasta que lo comprendes por completo.
En programación esto sucede cuando puedes corregir errores de sintaxis y/o de lógica. Es decir, cuando ya sabes depurar un programa. ¿Por qué? Pues simplemente porque implica que:
- Sabes leer un programa
- Sabes las reglas de sintaxis del lenguaje
- Entiendes la lógica de programación
Así que afronta el reto, y empecemos a deshacernos de esos errores.
Lista de errores comunes.
1. Incompatyble types: unexpected return value:
(Tipos incompatibles: valor de retorno no esperado)
El mensaje de error te indica que existen tipos incompatibles.
¿Qué hacer?
Revisa el tipo de método y la instrucción return si la incluye.
Recuerda que:
Declaración del método | Sentencia return |
void | NO DEBE EXISTIR EN ESTE TIPO DE MÉTODO |
int, float, double, char, boolean | Debe existir, regresando un valor del tipo apropiado |
Observa la figura 1. En este ejemplo el método esPerfecto se está declarando de tipo void, lo cual corresponde con un método que no regresa valores. Sin embargo, al final del método se incluye una sentencia return. Alguna de estas cosas está pasando:
- esPerfecto debe ser tipo void y por lo tanto debes eliminar la línea 23 (instrucción return)
- esPerfecto debe regresar un valor, por lo tanto hay que cambiar el tipo de método. Por la operación que se realiza en la sentencia return, el método debe ser un tipo boolean.

Figura 1. Error de Tipos incompatibles
1. Cannot find symbol
(No se puede encontrar el símbolo)
El mensaje de error te indica que existe un símbolo que no se reconoce por que no está declarado.
¿Qué hacer?
- Revisa que la variable esté declarada como variable local del método, o
- Verifica que el nombre del método invocado sea el correcto, o
- Asegúrate que el nombre de la variable global o local esté bien escrito.
Observa la figura 2. En este ejemplo el error se debe a que la variable numero no está declarada como variable local dentro del método. Seguramente puede haber sido declarada como variable de main, pero eso limita su alcance a sólo el método main.

Figura 2. Error “No se puede encontrar el símbolo” (Ejemplo 1)
En el ejemplo de la figura 3 el error es generado al escribir de forma incorrecta el nombre del método.

Figura 3. Error “No se puede encontrar el símbolo” (Ejemplo 2)
2. Invalid method declaration; return type required
(Declaración inválida del método; tipo de regreso requerido)
El mensaje de error te indica el método no ha sido declarado apropiadamente y que se requiere un tipo.
¿Qué hacer?
Revisa que el método tenga especificado un tipo de método, ya sea alguno de los tipos primitivos de datos o incluso en tipo void si no regresará valores.
Como puedes apreciar en la figura 4, a la declaración le falta el tipo de valor que el método regresará, ya sea int, float, char, double, boolean o void.

Figura 4. Error de declaración inválida del método.
3. Ilegal start of expression
(Comienzo ilegal de expresión)
Este mensaje de error aparece al inicio de un nuevo método, ya sea uno definido por el usuario o el mismo main. Puedes pasar horas revisando la sentencia donde el error se posiciona, y encontrarás que no hay error.
Y eso es debido a que un método anterior no se ha cerrado, cualquier inicio de otro método generará error de sintaxis.
¿Qué hacer?
Revisa que el método anterior tenga su llave de cierre.
Como puedes apreciar en la figura 5, el error se marca en la línea 55, que es precisamente donde inicia el método calcularAbundancia(). La sentencia está bien escrita, pero el método abundante() no se ha cerrado. Recuerda contar el número de llaves abiertas y cerradas de un método para que este error no suceda.

Figura 5. Error de comienzo ilegal de la expresión
4. Missing return statement
(Falta la sentencia return)
Este error se genera simplemente porque se ha olvidado la sentencia return, la cual es obligatoria en los métodos de tipo int, char, float, double y boolean; además de cualquier tipo definido por el usuario.
¿Qué hacer?
Asegúrate que, si el método no es de tipo void, exista la sentencia de return.
En la figura 6 te muestro el método calcularAbundancia(), declarado como un método tipo int. Recuerda que ese tipo implica que forzosamente debe regresar un valor int, y por lo tanto tiene que existir la sentencia return, la cual, como puedes ver, no está antes de la llave de cierre del método, en la línea 64.

Figura 6. Error “Falta la sentencia return”
5. class, interface or enum expected
(Se esperabla class, interface o enum)
El mensaje explica que se espera el inicio de una clase, interface o enumeración en esa parte del código. ¿Por qué? Muy sencillo, porque la clase actual ya ha sido cerrada.
¿Qué hacer?
Revisa que en el método anterior no sobre una llave de cierre.
Como puedes ver en la figura 7, el método calcularAbundacia() tiene una llave de cierre de más, lo que Java interpreta como el cierre de la clase.

Figura 7. Error “Se esperabla class, interface o enum”
Esta es una lista muy pequeña de los errores más comunes que se pueden presentar cuando se trabaja con un programa modular.
Mariana Sánchez González, leído
3. Uriel Lopez Aquino. Leído
Leido Profe