Tecnología

Inicio

Java no puede encontrar el símbolo con el Método de salida

Al programar en Java, mensajes de advertencia oscuros pueden aparecer durante la compilación. Determinar el origen de estos errores puede convertirse en un problema si usted no es consciente del contexto del error o de la forma de abordarlo. En el caso de la manipulación de símbolos, los programas Java que utilizan objetos y herencia pueden presentar una situación difícil depuración. Sin embargo, es importante recordar las reglas de herencia de clases en Java, por lo que un error como un "símbolo no se puede encontrar" se puede remontar de forma efectiva.

El "no puede encontrar símbolo" Error

Cuando se ejecuta un programa Java, el programa se compila por primera vez en el código de bytes. En concreto, esto significa que el compilador comprueba todas las variables, métodos y objetos declarados en el código y crea una especie de referencia para los nombres de variables o método. Estos nombres, o "símbolos" representan la ubicación en la memoria de la variable, objeto o método. Si el programador intenta utilizar una variable o método sin antes declarar que, el compilador dará un error "no puede encontrar el símbolo" denota que no existe una variable o método con el nombre suministrado.

Las clases de Java y Herencia

¿Cómo se definen los símbolos se convierte en un poco más matices cuando se habla de la herencia de clases de Java. Al crear objetos de Java, puede derivar estos objetos de otras clases que ya existen. De este modo, la clase derivada "hereda" los métodos y variables de la clase base. En el caso de herencia, un método o una variable declarada en una clase base hace referencia directamente a la clase que hereda, es decir, aquellos símbolos están disponibles en la clase derivada.

Los constructores de Java y Herencia

Un método particular en todas las clases, que se deriven o no, es el constructor. El constructor "por defecto" asigna memoria para un objeto cuando se ejemplariza en su programa. Sin embargo, puede crear un constructor de encargo para inicializar los valores de variables o ejecutar otras subrutinas cuando se crea un objeto. Al crear un constructor personalizado para una clase derivada de otra clase, sin embargo, debe llamar explícitamente al constructor de la clase base.

Símbolos de método y la palabra clave "Super"

El constructor ilustra un aspecto importante de las clases: a menudo, los métodos de una clase de "anular" derivada de los métodos de la clase base utilizando el mismo nombre de método para definir una nueva funcionalidad. Sin embargo, como en el caso del constructor, el método de la clase derivada debe invocar el método de la clase base, por alguna razón. Si tratas de llamar directamente al método de la clase base, recibirá un error de "símbolo no se puede encontrar". Por ejemplo, la sustitución del método "fuera" de una clase base se puede hacer, pero no se puede llamar a la versión de la clase base de "fuera" directamente. En su lugar, debe utilizar la palabra clave "super" para realizar la llamada, como se ilustra en este ejemplo:

Clase X {
pública returnNum void (int x) {
x regresar;
}
}

Clase Y se extiende X {
returnNum public void () {
int z = super (5); // Método "returnNum" clase de X llamadas
volver z * z;
}
}