java中Object... 的用法是什么意思?

我知道Object是所有类的基类。我想知道,比如在定义放法的时候:方法的参数定义成:Object... objects 和Object[] obj 有什么区别? 注意前一个Object 后面的三个“.”。

居然 整个楼里面都答非所问了   看我的看我的哦  提问者都说的这么清楚了

这个问题很好   

日常使用不定参数时候基本是Object...可以等同于 Object[] obj一维数组理解的

数组本质是连续的指针地址  其中数组的头指针是必须的    但是二者的不同在于何处呢?

很明显 
Obj...是针对方法传入参数的  即只能在method()内使用

即  不定参数只能作为方法的形参,不能用作变量  

然后你看我建立2个test犯法

然后你看我用这些方法

什么意思呢     看到编译器报错了?   

public viod method(Object[] obj)

必须传入已经初始化的数组  而已经初始化的数组是定常度的  所以实际没有实现真正的变长度参数

public viod method(Object...)  直接传入内容即可  其中的OBJ...对象是存在指针的

你看我运行一下 控制台打印的text  text1 传入的 Sring[]a指针地址

java的 数组结构在jvm的堆和栈上是不同的  但是我个人没有理解这问题如果提问者了解欢迎回复我

有关不定参数的使用

public viod method(Object[] obj,Object...)   {

Obj操了自己;

}

不过,不定参数有两个规定:第一,方法的参数列表中最多只有一个不定长度的参数;第二,就是不定长度的数组的位置必须是最后一个参数。不然不能通过编译。 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-29
java中Object是所有java类(包括自定义类)的父类。
Object的出现多用在多态上,目的就是使编写的程序有更大的通用性。
例子:
public class 动物类{
.......
}
public class 猫类 extends 动物类{
public string 叫声;
.......
}
public class 狗类 extends 动物类{
public string 叫声;
........
}
这里,猫类和狗类都是动物类的子类
现在我们有一个类,这个类有一个方法,要求打印猫的叫声
public class 猫叫声类{
public void jiao(猫类 mao){ //这里有一个猫类对象作为参数
System.out.println(mao.叫声);//这样就可以获得猫类的叫声属性
}
}

现在我们有一个类,这个类有一个方法,要求打印狗的叫声
public class 狗叫声类{
public void jiao(狗类 gou){ //这里有一个狗类对象作为参数
System.out.println(gou.叫声);//这样就可以获得狗类的叫声属性
}
}

看到这里,是不是发现点什么问题了。这两个类几乎是完全相同的,就是jiao这个方法的参数不同,分别是猫和狗。那我们有没有什么办法,使这个类中的方法适合这两种情况呢,你是猫,我就打印猫的叫声,你是狗我就打印狗的叫声,这样不就方便多了吗?
这个就是父类对象的好处了。
public class 叫声类{
public void jiao(动物类 dongwu){ //这里有一个动物类对象作为参数
System.out.println(dongwu.叫声);//这样就可以获得具体类的叫声属性
} //这地方有一个多态的性质,你相应的
} //看这节内容
这个类写完,如果你穿过来的参数是一个狗类,大舅打印狗的叫声,如果你穿过来的是一个猫类,他就打印猫的叫声。
现在你应该明白,父类引用其实就是为了程序更加通用,这里举得是我们自定义的一个类。
object是所有类的父类,其思想和这个例子完全一样,好好理解一下,具体的你可以看继承和多态这两节,看完这两节那对这个知识就非常明白了!
第2个回答  推荐于2018-06-07
Object是所有类的基类,这个你可以查询jdk文档了解,所有类都继承自Object。

Object ...objects这种参数定义是在不确定方法参数的情况下的一种多态表现形式。即这个方法可以传递多个参数,这个参数的个数是不确定的。这样你在方法体中需要相应的做些处理。因为Object是基类,所以使用Object ...objects这样的参数形式,允许一切继承自Object的对象作为参数。这种方法在实际中应该还是比较少用的。

Object[] obj这样的形式,就是一个Object数组构成的参数形式。说明这个方法的参数是固定的,是一个Object数组,至于这个数组中存储的元素,可以是继承自Object的所有类的对象。
这些基础东西建议你多看几遍"Think in java"
希望我的回答对你有所帮助。本回答被提问者和网友采纳
第3个回答  2018-02-17
java方法中返回一个Object类型的对象表示这个方法返回的类型不受限制,因为Object是所有类的父类,返回任意一个类型都属于Object类型。
事例代码如下:
public class Demo2 {
private static int x = 1;//定义一个int型变量
public static void main(String[] args) {
System.out.println(a());
}
private static Object a(){//此返回Object类型的值
return x;//结果一个int型变量也可以
}
}
Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。
  Object类是Java中唯一没有父类的类。

  其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。
Object类是Java中其他所有类的祖先,没有Object类Java面向对象无从谈起。
第4个回答  2010-12-29
object是所有类的基类!就是你可以吧任何对象class都当成object
相似回答