Testinho básico

13 respostas
Luca

Olá

O que ocorre com o código abaixo?

public class Pi {

	double \u3c00 = 3.14;
	
	public static void main (String[] args) {

		System.out.println(\u3c00);
	}
}

a) Erro de compilação
b) Erro de execução
c) Imprime 3.14
d) Imprime outra coisa
e) Mostra tela azul

PS: Explique sua resposta.

[]s
Luca

13 Respostas

H

Olá Luca ,
O código abaixo não compila pois vc não pode referenciar dentro de um método estático variaveis que não sejam estáticas, eu acho que é isso.
Para o código compilar vc deveria criar um objeto dessa classe e mandar imprimir a sua variavel, ou transformar a variavel para estática. Se estiver errado me avisem :lol:
[ ]’

Luca

Olá

Perfeito!

E:\>javac Pi.java
Pi.java:7: non-static variable ? cannot be referenced from a static context
                System.out.println(\u3c00);
                                        ^
1 error

E:\>

Coloquei este teste com a pegadinha da chamada dentro do método estático só para lembrar que é possível declarar variáveis usando Unicode. Abaixo o mesmo código com u3c00 declarado como static que compila e imprime 3.14

public class Pi {

	static double \u3c00 = 3.14;
	
	public static void main (String[] args) {

		System.out.println(\u3c00);
	}
}

[]s
Luca

E

se o objetivo fosse imprimir o correspondente do código Unicode ele teria que estar entre aspas SIMPLES no println (esquecendo a variável double). Estou certo?

Luca

Olá

Vc mudou o problema e ficou muito mais difícil.

O unicode ‘\uc300’ é a letra grega PI ( л ). Se fizer como vc disse vai mostrar ‘?’ no prompt do DOS pois PI é armazenado em 2 bytes no Unicode e não aparece no prompt do DOS que usa um só byte.

[]s
Luca

D

Certo…e para que serve a declaração de caracters entre os valores

ou seja…

char c ='00'; até c='377';

é sem o UnicodeMaker (u)…mesmo… :smiley:

se isso nao são unicode Escapes… o que são então?? :wink:

obs…sendo que nenhum digito “8”…por estar no valor…digo…

char c =‘128’; //compile error…
char c1 = ‘308’; // compile error…
char c2 = ‘378’; // compile error…

??

Valeu pessoal!

D

só acrescentando pessoall

aqui nestes ultimos exemplos…faltaram…o backslashs…()

char c ='128'; //compile error... char c1 = '308'; // compile error.. char c2 = '378'; // compile error....

D

ehe que droga mesmo…agora vai…hehe

D

a…desisto de querer colocar as backslashs…hehe nao sei…

mas alguem saberia algo a respeito da questao??

_fs

Bem, para colocar backslashs é só colocar dois deles \

*como pode ter percebido eu tive que colocar 2 para mostrar 1 hehe

*o botão ‘edit’ em cima à direita de um tópico seu funciona muito bem hehe :smiley:

D

certo certo…valeu!!hehe

mas e quanto a questão ???

alguém??
valeu!

Luca

Olá

Fiz a questão como uma pegadinha. Coloquei uma coisa que pensei que todo mundo fosse achar que estava errado MAS não está que é a definição de nomes de variáveis usando unicode.

. . .
double \u3c00 = 3.14; 
. . .

Para complicar, coloquei um outro erro meio sutil mas que o hklemp pegou de cara que é a questão de usar uma variável não estática dentro de um método estático.

Depois o Eddie complicou querendo imprimir o caracter PI no prompt do DOS. Então é só isso. O intuito foi lembrar que o unicode pode ser usado também para nomear variáveis.

Foi isso que perguntou? Ao responder não esqueça de colocar duas barras para mostrar uma. Você vê \ mas eu escrevi \\.

[]s
Luca

D

“Duque”:
Certo…e para que serve a declaração de caracters entre os valores

ou seja…

char c ='\000'; até c='\377';

é sem o UnicodeMaker (u)…mesmo… :smiley:

se isso nao são unicode Escapes… o que são então?? :wink:

obs…sendo que nenhum digito “8”…por estar no valor…digo…

char c ='\128'; //compile error... char c1 = '\308'; // compile error.. char c2 = '\378'; // compile error....

??

Valeu pessoal!

cara obrigado pelas explicações…mas a minha duvida e sobre isto aqui em cima!!

valeu!! =)

Luca

Olá

Procure informações sobre octais, isto é, números em base 8 (só com dígitos 0,1,2,3,4,5,6,7).

[]s
Luca

Criado 26 de janeiro de 2004
Ultima resposta 3 de fev. de 2004
Respostas 13
Participantes 5