Duvida referente variavel de instancia?

Ol,

porque a resposta b ??? não entendi ???

abs


Which three are legal ways to declare and initialize an instance variable? Choose three


a) static int x=42;
b)  public int x='c';
c) public int x=null;
d) public Integer f =null;
e) static Integer f = new Integer(42);
f) public Integer f = new Integer(42);


resposta b,d,f

Cara, posso estar enganado, mas como tem q ser variável de instância, não vai dar problema pra compilar.
Agora eu acho q o resultado é considerando o código ascii dele.

A alternativa [b] funciona porque ‘c’ é um char, que pode ser diretamente convertido para int.

jovem

como váriavel de instância acredito que todas elas sejam legais, exceto a “c”…é impossível setar como null um tipo primitivo e as static (passa ser um variavel da classe) .

a)static int x=42;   
b)public int x='c';   
c)public int x=null;   
d)public Integer f =null;   
e)static Integer f = new Integer(42);   
f)public Integer f = new Integer(42);

Agora ‘c’ é um literal do tipo char…consequentemente pode ser atribuído á um int

Lembrando…

Um byte pode ser convertido em um short, int, long, float ou double
Um short pode ser convertido em um int, long, float ou double
Um char pode ser convertido em um int, long, float ou double
Um int pode ser convertido em um long, float ou double
Um long pode ser convertido em um float ou double
Um float pode ser convertido em um double

Não faz sentido essa resposta, a unica opção que não compila é a c.

Uma Curiosidade:

Na verdade um char pode ser convertido até em byte, dependendo do caractere.

Por ex:
byte b = ‘a’; // Válido
byte c = ‘á’; // Inválido