2016-11-20 92 views
-4
class Example{ 
public static void main(String args[]){ 
int x=100; 
final int y=100; 
final int z; 
z=100; 

byte b1,b2,b3; 
b1=x; 
b2=y; 
b3=z; 

System.out.println(b1); 
} 

} 我得到一个错误,当我打印B1和B3 seperatly ..但thers没有错误,如果我打印b2 seperatly ..Pls说明我得到当我打印B1和B3 seperatly错误。但thers没有错误,如果我打印B2 seperatly ..Pls Explaine

+2

请说明问题 –

+1

检查错误和失败的代码将是一个好的开始。 – David

+0

错误代码:Example.java:12:错误:不兼容的类型:从int到字节的可能有损转换 –

回答

1

A byte只能保持从-128到+127的值。如果你的int包含5000,那将是一个问题。明确地转换成(byte)就是你在Java中所说的,“我知道我在做什么,停止窃听我。”

现在,它与b2=y一起工作的原因是因为它在编译时知道y=100,因此这个操作是安全的。它没有关于xz的保证。

0

If you make any variable as final, you cannot change the value of final variable(It will be constant).

Source

zfinal,因此它是恒定的。但是,它没有在声明时初始化。后来给它分配一个值,但是没关系。然后您将z指定为b3并将其打印出来,但zfinal,并且只有在声明后才赋值。由于不清楚应打印出什么内容,因此出现错误。试着用

final int z = 100; 

代替。