Identificadores Legais

3 respostas
cristianopagani

Boa Tarde,

Estou começando a estudar para a certificação SCJP e encontrei algo estranho com identificadores legais. Pergunto aos senhores se é possível que encontramos alguma questão com esse tipo de sintaxe ?
public class $º_ {

	int _12$$$º = 0;

	public void $$$___12345() {
		System.out.println(_12$$$º);
	}


	public static void main(String[] args) {
		String teste = "☻";
		$º_ º_$ = new $º_();
		if(teste.equals("☺")) {
			º_$._12$$$º = 24;
			º_$.$$$___12345();
		} else {
			System.out.println("☺");
		}
	}
}

3 Respostas

T

Nunca vi uma questão dessas, mas é só decorar:

Um identificador legal em Java começa por um caracter Unicode na classe “Letter”, ou então _ ou $.
Ele pode ser seguido por caracteres Unicode na classe “Letter” ou “Digit”, ou então _ ou $.

Por exemplo, você poderia ter um programa com identificadores em chinês, japonês, russo ou árabe, ou mesmo armênio, georgiano ou hindi. Não há problemas.

Entretanto, evite usar o “$” para identificadores, já que o Java usa internamente identificadores com “$” para implementar classes anônimas e internas.

int ウィキペディア = 10;
String Википедия = "20";
double विकिपीडिया = 3.0;
C

Me lembrou de uma vez que eu tentei sacanear o compilador, e criar uma variável chamada $assertsEnabled, já que essa é a variável interna que o java usa para o assert condicao == esperado;
Mas, não tive sucesso em ferrar com o java =(
Ele começa a declarar as variáveis com $assertsEnabled_1, _2, _3 … …

rmala_ti

Thingol,
onde eu encontro a classe “Letter”?

Não entendi pq os caracteres º, ª são válidos.

Criado 21 de julho de 2009
Ultima resposta 23 de jul. de 2009
Respostas 3
Participantes 4