-3

这个声明有效还是无效?

int obj=new someMethod();

另外我想知道当我们创建具有不同引用和构造函数的对象时它会产生什么差异,如下所示:

Object obj=new otherObject();

我的意思是它与

Object obj=new Object();

“someMethod”是另一个类“someMethod”的构造函数,“otherObject”也是类“otherObject”的构造函数。对象是一个类。

4

3 回答 3

2

大胆猜测这someMethod是一个类的方法,例如:

int someMethod() {
    // Code here
}

...那otherObject是一个类的实例,那么不,这些陈述都不是有效的。

在 Java 中,new关键字用于创建类的实例。类不是方法,也不是对象。

该声明:

Object obj = new Object();

是有效的,并且有效,因为Object是一个类。

现在,当然,如果otherObject是一个

class otherObject {
    // Methods and such here
}

...thenObject obj = new otherObject();是一个有效的语句,因为所有类都派生自Object,因此可以将otherObject实例分配给声明为 的变量Object。请注意,在 Java 中,压倒性的约定是使用初始封顶的 CamelCase 作为类名(所以,OtherObject而不是otherObject)。

我建议退后一步,阅读一些不错的 Java 入门教程,这些教程将解释类、实例、方法等。

于 2013-03-15T07:37:38.883 回答
1

int obj=new someMethod(); 无效。int 是一种数据类型,而不是一个类。您不能从 int 继承,因此 someMethod 永远不可能是 int 类/对象。

如果 someMethod 是一种方法(顾名思义:)你可以有

int intObj = someMethod();

如果 someMethod 返回并且 int 像这样:

int someMethod()
{
    return 5;
}

基础对象 obj=new otherObject(); 表示“otherObject”类继承自“baseObject”。例如,如果你有一个 Animal 类,那么像 Dog 这样的类可以从它继承,这样你就可以拥有

Animal spot = new Dog();

但你不能拥有

Dog spot = new Animal();

这是一个解释 java 继承的链接:http: //docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

由于所有类都继承自 Object,所以 Object obj = new OtherObject(); 已验证

于 2013-03-15T07:39:21.270 回答
0
int obj=new someMethod();

无效,因为当您创建任何类的对象时,您无法为其分配基本数据类型。

Object obj=new otherObject();

是有效的,因为一个类的对象可以分配给它自己的类型或它的超类,并且Object类是所有的超类。

于 2013-03-15T07:44:49.393 回答