0

如何在不创建该类的对象的情况下从包中的所有类访问方法。

主班

public class mainclass
{
public void methodOne()
{
subclass obj = new subclass();
System.out.println("Height and Width" + obj.width()+" "+obj.height());
}
}

我的第二节课

public class subclass
{
public int width()
{
return (int)windowWidth;
}

public int height()
{
return (int)windowHeight;
}
}

是否可以在不创建子类对象的情况下调用 width() 和 height()

4

4 回答 4

2

嗯,不,简而言之。没有办法在不改变某些东西的情况下调用这些方法。

您可以标记方法static,然后可以在不创建对象的情况下调用它们。但是,如果windowWidth并且windowHeight是实例成员,您将无法访问它们,因此方法本身的代码将无法编译。那么它们显然不再是相同的方法了——所以答案仍然是,真的,不是。

于 2012-04-10T04:07:46.283 回答
1

不,对于非静态方法,您需要一个实例来调用它们。

于 2012-04-10T04:07:33.843 回答
1

你必须创建一个对象的实例来调用它的方法。除非该方法在调用对象上。

编辑

以上适用于非静态方法。另一方面,静态方法可以而且应该在类级别访问(即不需要实例)。

于 2012-04-10T04:07:49.693 回答
1

如果您想使用该方法而不创建该特定类的实例,则必须将该方法声明为静态

于 2012-04-10T04:10:45.337 回答