Ao programar em Java, mensagens de aviso obscuros podem aparecer durante a compilação. Determinar a origem desses erros podem se tornar um problema se você não está ciente do contexto do erro ou como lidar com ele. No caso de manipulação de símbolos , os programas Java que usam objetos e herança pode apresentar uma situação difícil depuração . No entanto, é importante lembrar as regras de herança de classe em Java, de modo que um erro, como um "símbolo não pode ser encontrada" pode ser traçada de forma eficaz. O " não consegue encontrar Symbol" erro quando tenta
Ao executar um programa Java, o programa é compilado pela primeira vez em código de byte . Especificamente, isso significa que o compilador verifica todas as variáveis , métodos e objetos declarados no código e cria uma espécie de referência para os nomes de variáveis ou métodos. Estes nomes , ou " símbolos " representam a localização na memória da variável , objeto ou método. Se o programador tenta usar uma variável ou método sem primeiro declará-lo , o compilador dará um erro " não é possível encontrar símbolo ", denotando que uma variável ou método com o nome fornecido não existe.
< Br > classes Java e herança
Como símbolos são definidos torna-se um pouco mais nuances ao falar sobre a herança de classe Java. Ao criar objetos Java , você pode derivar esses objetos de outras classes que já existem. Ao fazer isso, a classe derivada " herda " os métodos e variáveis da classe base. No caso de herança, um método ou uma variável declarada em uma classe base é referenciado diretamente da classe herdada , ou seja, aqueles símbolos estão disponíveis na classe derivada .
Java Construtores e Herança
Um método especial em todas as classes , derivados ou não , é o construtor . O construtor "default" aloca memória para um objeto quando você instancia -lo em seu programa. No entanto, você pode criar um construtor personalizado para inicializar os valores das variáveis ou executar outras sub-rotinas quando um objeto é criado. Ao criar um construtor personalizado para uma classe derivada de outra classe, no entanto, você deve chamar explicitamente o construtor da classe base.
Método Símbolos e do "Super" Keyword
o construtor ilustra um aspecto importante de classes: muitas vezes , os métodos de uma classe " override " derivada dos métodos da classe base , usando o mesmo nome de método para definir novas funcionalidades. No entanto, como no caso do construtor , o método de classe derivada deve chamar o método da classe base , por algum motivo . Se você tentar e diretamente chamar o método da classe base , você receberá um erro " símbolo não pode ser encontrada" . Por exemplo, substituindo o método "out" de uma classe base pode ser feito, mas você não pode chamar a versão de classe base do "fora " diretamente. Em vez disso, você deve usar a palavra-chave "super" para fazer a chamada , como este exemplo ilustra :
Classe X { public void returnNum (int x) {return x ;}}
Classe estende Y X { returnNum public void () { int z = super ( 5); //chamadas de classe X " returnNum " methodreturn z * z ;}}