java初学小问题2

来源:百度知道 编辑:UC知道 时间:2024/06/05 06:47:09
class y2
{
public static void main(String args[])
{
final long l=33l;
final float number=35f;
int i=2;
char ch='a';
boolean b1;
float f=3.0f;
int x=5,y=6,z=7;
int ii=ch+i;
int n=(int)Math.sqrt(number);
double d=19%4-i++;
float f=(float)(1-x-i);
long m=1-(int)f/(x+y)*i%(int)d;
b1=m>=z;
boolean bb1=(x>=y)&&(y+z<=x)||!b1;
System.out.println("n="+n+"\tm="+m+"\td="+d);
System.out.println("f="+f+"\tii="+ii+"\tb1="+b1+"\tbb1="+bb1);
System.out.println("x^y="+(x^y)+"\tx|y="+(x|y));
}
}

float f=(float)(l-x-i);这行出错。。。怎么改才正确?
⑴ final在数据对象定义中有何作用?如果将float f=3.0f;前面加上final,会有什么错误?

重复定义了:
上面已经有 "float f=3.0f;"
...
改成 f=(float)(1-x-i);

final
在声明类时加上final,则该类为final类,final类不可被继承.
如果方法前加final,则该方法不能被重写,即不能被子类重写.
加到变量前,表示变量不可变.
final加到f前,则"f=(float)(1-x-i);"这里会提示错误,因为此时f是不可变的.

final加到变量前
该变量不能被重新赋值

final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。