java问题:有返回值类型的方法,返回的值的类型是不是必须和声明方法类型一致呢? 5
比如:publicstaticStringstr(inti){return...}返回的类型是不是必须是String型?publicinta(Stringstr){ret...
比如:public static String str(int i){return...}返回的类型是不是必须是String型?public int a(String str){return...}返回的类型是不是必须是int型?
问2:返回值的类型是不是必须和声明方法的类型一致呢?是不是可以与参数类型不一致呢?
问得细就比较啰嗦,麻烦网友解答下! 展开
问2:返回值的类型是不是必须和声明方法的类型一致呢?是不是可以与参数类型不一致呢?
问得细就比较啰嗦,麻烦网友解答下! 展开
8个回答
展开全部
1,你的方法类型是什么类型,返回值就必须与方法类型一致,且必须有返回值。
例如:public String test() {
String a;
return a;
}
2,方法的返回类型与参数类型没有任何关系,也就是说方法的返回类型只与方法类型有关系,与参数类型没有关系。
例如:public String test(Double a) {
String s = "return";
Double d = a;
reutrn s;
}
当然还有其他情况,可能会出现返回类型和方法类型不一致的现象,比如小int类型可以遇到Double会自动转换成Doubel,但是Double不能转换int。不过按照编码规范,方法什么类型,就返回什么类型是绝对没问题的。
例如:public String test() {
String a;
return a;
}
2,方法的返回类型与参数类型没有任何关系,也就是说方法的返回类型只与方法类型有关系,与参数类型没有关系。
例如:public String test(Double a) {
String s = "return";
Double d = a;
reutrn s;
}
当然还有其他情况,可能会出现返回类型和方法类型不一致的现象,比如小int类型可以遇到Double会自动转换成Doubel,但是Double不能转换int。不过按照编码规范,方法什么类型,就返回什么类型是绝对没问题的。
展开全部
问题1:不必须一致,但必须遵循是一个原则:实际返回值必须可自动转型的为声明返回值(即为扩展转换而非窄化转换)。
随便举几个例子:
public class Test {
public static void main(String[] args){
System.out.println(aObject());
}
static Object aObject(){
String s = "97";
return s;
}
}/*output:
97
*///String类转为Object类,为向上转型,因此可以执行,反之则编译错误/~
public class Test2 {
public static void main(String[] args){
System.out.println(getInt());
}
static int getInt(){
char aChar = '97';
return aChar;
}
}/*output:
97
*///声明为int,实际返回char,也可自动转换,所以可以,反之同样编译错误/~
问题2:参数类型与返回值类型无关
随便举几个例子:
public class Test {
public static void main(String[] args){
System.out.println(aObject());
}
static Object aObject(){
String s = "97";
return s;
}
}/*output:
97
*///String类转为Object类,为向上转型,因此可以执行,反之则编译错误/~
public class Test2 {
public static void main(String[] args){
System.out.println(getInt());
}
static int getInt(){
char aChar = '97';
return aChar;
}
}/*output:
97
*///声明为int,实际返回char,也可自动转换,所以可以,反之同样编译错误/~
问题2:参数类型与返回值类型无关
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
返回值的类型必须与方法的返回值声明类型一致,或者为声明类型的子类。也就是说你的public static String str这个方法,返回值就必须是String类型。
返回值当然可以与参数类型不一致,方法的参数和返回值是两个概念。参数你可以理解为这个方法执行的一些条件,返回值是方法执行的结果
返回值当然可以与参数类型不一致,方法的参数和返回值是两个概念。参数你可以理解为这个方法执行的一些条件,返回值是方法执行的结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是不一定的:这涉及到向上转型的问题,以下两个例子编译都是可以通过的
1.private List test() {
return new ArrayList();
}
2. private double test2() {
int a = 1;
return a;
}
1.private List test() {
return new ArrayList();
}
2. private double test2() {
int a = 1;
return a;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public String retString(int i) {//String表明返回类型是String的
return "TypeOfString";//必须返回个String类型的结果
}
return "TypeOfString";//必须返回个String类型的结果
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询