是否可以在类中的方法中实例化一个对象,然后在main中使用实例化对象的方法之一?我可以修复以下代码吗?

    public class Test {

    public void Testmethod()  {

        someclass a = new someclass();

    }

    public static void main(String[] args) {

        a.methodfromsomeclass();

    }

}

最佳答案

您需要解决三个问题:

1)您已声明aTestmethod内部的局部变量。这意味着只能在Testmethod内部访问它。如果要使一个变量即使在Testmethod执行完后仍然存在,则应将其设为Test的实例变量。这意味着Test的实例将包含变量,而Test的实例方法(Testmethod除外)将能够访问它。

声明实例变量看起来像这样:

public class Test {
    private someclass a;  // please choose a better variable name
    //...... other code ..........//
}


2)main将无法访问实例变量,因为main是静态的。您也不能将main设为非静态; Java要求它是静态的。您应该做的是编写一个实例方法(例如,称为doMainStuff或更好的名称),并让您的main创建一个新的Test对象,例如:

public void doMainStuff() {
     // something that calls Testmethod
     a.methodfromsomeclass(); // use a better name than "a"
     // other code
}

public static void main(String[] args) {
     new Test().doMainStuff();
}


3)到目前为止,由于您从未调用someclass,因此永远不会构造新的Testmethod。在尝试使用Testmethod之前,您需要确保调用a。 (它不会因为出现在代码中而自动被调用。您必须编写调用它的代码。)

另外,请遵守正确的命名约定:类以大写字母(SomeClass)开头,方法以小写字母(testMethod)开头,如果名称包含多个单词,则第二个单词和后面的单词开始大写字母。

关于java - 主要对象的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34553114/

10-10 16:04