2009-10-30 42 views

回答

5

myFunction是属于Main类型的实例方法。您的代码所做的工作是首先创建一个类型为Main(即new Main())的新实例,然后在该实例上调用方法myFunction

你的代码的更详细的版本是:

Main mainObj = new Main(); 
mainObj.myFunction(); 
0

那么,“主”是一个类,'main'是一个方法,所以它们不是同一个东西。如果您想创建一个“Main”类的新实例并调用myFunction方法,您将按照您的示例进行操作。现在,如果“main”是“Main”的方法...那么我不能说为什么你实际上会做这样的事情。

+2

'main'是'static'。如果'myFunction'不是,则不能简单地调用'myFunction()'。 – ephemient 2009-10-30 00:56:40

+0

@ephemient:“if”是关键词。我们不知道其他代码正在做什么。 – 2009-10-30 01:57:01

+0

@Alexander Pogrebnyak:是的,我试图说* *我*不知道为什么,因为*我*看不到剩下的代码。 – 2009-10-30 01:58:13

0
new Main().myFunction(); 

这将创建Main类的新实例,然后调用myFunction()方法就可以了。

1

最有可能myFunction是一个实例方法,而不是一个类(静态)方法,因此必须在类的实例调用。由于你在一个静态方法中,你不能直接调用实例方法,所以你必须首先创建一个实例new Main(),然后你可以调用它。

0

因为myFunction()是非静态的,所以你需要一个类Main的实例来调用它。

new Main()。myFunction();

可以被分解成

新的Main()//实例化,然后再只 .myFunction()

1

What does it mean to call a Java method using “new” in a statement?

它创建给定类的新实例

Why not just do: myFunction();

最有可能的 myFunction()是一种实例方法:

为了调用实例方法,您需要一个实例第一个

使用new关键字创建一个新对象,然后调用该对象的myFunction方法。

标记为static访问修饰符的方法是方法,它们属于整个类,不需要实例工作。

没有标记为static的方法确实需要一个实例才能工作。

这就是编译器错误:

...cannot invoke a non-static method from a static context...1

是怎么一回事。

或类似的东西