Java返回值类型
对于静态代码块和非静态代码块而言,若方法没有返回值则返回值类型为void;
public static void dowork() {
}
若为基本数据类型则必须返回同一个基本数据类型;
public static int dowork() {
int a=12;
return a;
}
或返回精度更高的数据类型(即范围缩小),Object为所有类型的父类,没有比之范围更大的,boolean为范围最小的;
public static long dowork() {
int a=12;
return a;
}//long数据类型为64位,返回的int数据类型为32位,返回的范围缩小,精度提升,故可行
(扩展:返回的数据类型范围也可以变大,但必须强制赋值);
public static int dowork() {
int a=12;
return (int) 1.0;
}//此时返回的数据类型为double,必须强制赋值为int 16位,eclipse才不会报错
注意:返回值的规律不能与数据类型转换的规律记混,返回值的转换规律为 返回值类型范围大的变成范围小的,而数据类型转换则相反,为范围小的赋值给范围大的,(例 1属于int 类型 可以赋值1.0 变成double类型,小范围转换为大范围,若大范围赋值给小范围,容易失真,0.1赋值为0,,必须使用强制类型转换)。口诀:返回是大范转小范,赋值是小范转大范。若顺序不同,必用强制转换。(入门者易混淆精度与范围,故简单理解时可从记忆中抹去精度这一概念,这样在数据类型转换和返回值类型转换时不容易出错)。牢记返回大范转小范,记住数据类型转换与前面的相反就行,此点对于入门者来说非常重要,是java入门的基石,切要牢记。
int a=1;//正确;
int a=1.0//错误,根据口诀数据不能大范转小范,若要转换必须为 int a=(int)1.0;
double b=1.0;//正确;
double b=1;//正确,根据口诀数据类型转换是小范变大范,int小范变成了double大范故正确;