拷问1:传递的参数如果不是基本数据类型而是引用变量,该如何理解?
柯南:首先,明白一点:Java是通过值传递的,也就是说通过拷贝传递。对于变量来说,变量的值就是传递的值;而引用变量,存储的并不是对象而是对象的引用,类似指针和地址。这样来看,引用变量传递的只是引用的一份拷贝。
拷问2:实参的类型可以和形参的类型不完全一致吗?例如int的想要传递给double型!
柯南:可以。但是有个前提条件:实参的类型容器要小于形参的类型容器。byte、short可以传递给int,int可以传递给long等。这样,传递的参数类型相当于隐含放大了。
拷问3:返回值类型一定要与声明的返回值类型完全一致吗?
柯南:不是。和拷问2一样,返回值类型应小于声明的返回值类型。否则,必须做明确的转换,缩小返回值的类型。
拷问4:方法可以声明多个返回值吗?有没有别的方法可以返回多个值?
柯南:不可以。方法只能声明一个返回值。可以用数组返回多个值。
拷问5:我可以忽略返回值吗?
柯南:可以不去处理返回值。