Lvalue

Olá…

O que quer dizer lvalue em Java ?
Consegui uma definição mas mesmo assim continuo não entendendo seu significado.

Obrigado

Olá,

Todas as linguagens de programação possuem pelo menos um “operador de atribuição” (Java possui vários). O mais comum deles é representado pelo caractere ‘=’.

Numa expressão de atribuição simples, a subexpressão à esquerda do operador é chamada de lvalue; a expressão à direita é chamada de rvalue.

Tanto o rvalue quanto o lvalue têm que ser consistentes sintática e semanticamente. O lvalue tem que ter a capacidade de receber um valor de determinado tipo; o rvalue tem que ser capaz de ‘dar’ um valor.

Exemplo de um rvalue sintaticamente correto, mas semanticamente incorreto:

int a = ob.m();

Se o método m for de tipo void, há uma violação das regras da linguagem.

Exemplos de um lvalue semanticamente errado:

int a = ob.m();

Se o método m retornar um objeto de uma classe qualquer X.

e

final int a = 3;

a = 5; // tentativa de reinicializar uma constante

Eis um lvalue sintaticamente errado:

alfa() = 5;