Ao instanciar um objeto, exemplo:
Calculadora calc = new Calculadora();
Podemos dizer que calc é uma variavel ou o correto seria dizer que é um ponteiro já que armazena um endereço de memoria
É um objeto.
Em Java não existe o conceito de ponteiros como conhecemos de outras linguagens como C ou C++. O que nós temos é o conceito de referência.
No seu exemplo, calc
é uma variável e ela pode ser uma…
- variável de classe
- variável de instância
- variável local
… dependendo do contexto em que vc a declarou.
Agora sobre o que a variável calc
contém, podemos dizer que é um objeto como o @Fefo80 comentou ou, mais precisamente, uma referência à um objeto ou ainda, uma referência à uma instância da classe Calculadora
.
Vc deve deixar de lado essa noção de “endereço de memória” quando trabalha com Java. A variável calc
não armazena o endereço real, mas sim uma referência àquela instância. Como essa referência é gerenciada é com a JVM.
Isso lembra aquela antiga discussão sobre:
Em java, os parâmetros são passados por valor ou por referência?
Sabe dizer como anda esta discussão? É porque é muito estranho, pois na linguagem Java a passagem é sempre por valor e não existe ainda o conceito de “passagem por referência” como existe em linguagens como C++, C#, PHP, etc.
Ah, eh coisa antiga, hoje, quase não vejo mais pessoal discutindo isso. A confusão (inclusive que eu tinha) era qdo um objeto era passado como parâmetro. Mas hoje entendo que eh tudo por valor também.