0

我有这堂课:

public class Example
{
    public void static main(String[] args)
    {
        Object obj = new Object();
        OtherClass oc = new OtherClass(obj);
    }
}

public class OtherClass
{
    private Object object;
    public OtherClass(Object ob)
    {
    this.object = ob;
    }
}

现在我将在另一个主目录中使用 OtherClass。我能怎么做?这是我想使用之前在类示例中创建的 OtherClass 对象的类

public class myownmain
{
    public static void main(String[] args)
    {
        // Here I need OtherClass object created in Example class
    }
}
4

3 回答 3

1

这些不同类中的主要功能代表不同的应用程序,您将无法从另一个应用程序中引用在一个应用程序中创建的对象。

如果您想在其他主要功能中使用类似的对象,您只需创建新实例并使用它们。尽管您尝试实现的目标并不明显。

于 2012-07-07T09:27:32.977 回答
1

Java 程序通常只有一种main方法,或者更具体地说,main程序启动时只会调用一种方法。但是,可以main从您的方法中调用其他方法。

如果不重组上面的类,你就无法做到这一点Example,因为OtherClass实例是main方法中的局部变量,因此你无法检索它。

OtherClass一种解决方案是在您自己的main方法中实例化:

public class myownmain {
    public static void main(String[] args) {
        Object obj = new Object();
        OtherClass oc = new OtherClass(obj);
    }
}

另一种选择是重写Example类以将OtherClass实例公开为静态属性:

public class Example {
    private static OtherClass oc;

    public static OtherClass getOc() {
        return oc;
    }

    public static void main(String[] args) {
        Object obj = new Object();
        oc = new OtherClass(obj);
    }
}

然后您可以在调用后获取此实例Example.main

public class myownmain {
    public static void main(String[] args) {
        Example.main(args);
        OtherClass oc = Example.getOc();
    }
}
于 2012-07-07T09:29:16.220 回答
1

你应该只有一种main(String[] args)方法。如果您想从 Example 类中传递OtherClass创建方法,例如

public static OtherClass getOtherClass(Object obj) {
   return new OtherClass(obj);
}

然后在MyOwnMain 类中添加

Object obj = new Object();
OtherClass oc = Example.getOtherClass(obj);

但正如@Eng.Fouad的意思,如果你想拥有两个正在运行的应用程序,只需点击他的链接即可。

于 2012-07-07T09:29:21.277 回答