public class helloworld {
public static void main(String[] args) {
String text = "Hello World";
l(text);
int n = 0;
l("--------------------------");
l(n);
}
public static void l(Object obj) {
System.out.println(obj);
}
}
我用Java编写了这个简单的程序,它起作用了。现在我很困惑,如果所有的数据类型(int
,char
,double
等)来下的Object
,那么为什么我们指定的数据类型,我们希望,当我们值传递给接受?
我的意思是我们总是可以使用Object
函数中使用的数据类型l
。人们为什么不总是将其Object
用作数据类型来传递值有特定原因吗?
在所有原始类型及其对应的对象对应项之间定义了一个隐式转换:
int -> Integer
char -> Character
etc...
这称为自动装箱。
人们为什么不总是使用“对象”作为其数据类型来传递值的特定原因?
由于Java是强类型的,因此您不能做很多事情Object
。
例如试试这个:
static Object add(Object a, Object b) {
return a + b; // won't compile
}
这是因为可使用的方法,运算符等取决于变量的静态类型。
println
可以接受,Object
因为它只需要调用该toString
方法。如果只需要中的方法提供的有限功能Object
,那么可以将其用作类型。但是,这种情况很少发生。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句