使用";调用Java方法意味着什么;新";在一份声明中?

使用";调用Java方法意味着什么;新";在一份声明中?,java,Java,比如,我有一段代码片段,如下所示: public static void main(String[] args) { new Main().myFunction(); } 其中myFunction是与Main在同一类中定义的另一个方法(可以是非静态的)。你为什么要这样做?为什么不直接做:myFunction()好吧,“Main”是一个类,“Main”是一个方法,所以它们不是一回事。如果您想创建一个“Main”类的新实例并调用myFunction方法,您可以按照示例中

比如,我有一段代码片段,如下所示:

  public static void main(String[] args) {
        new Main().myFunction();
    }
其中myFunction是与Main在同一类中定义的另一个方法(可以是非静态的)。你为什么要这样做?为什么不直接做:
myFunction()

好吧,“Main”是一个类,“Main”是一个方法,所以它们不是一回事。如果您想创建一个“Main”类的新实例并调用myFunction方法,您可以按照示例中所示的方法执行。现在,如果“main”是“main”的方法。。。那我就说不出你为什么要这么做了。

好吧,“Main”是一个类,“Main”是一个方法,所以它们不是一回事。如果您想创建一个“Main”类的新实例并调用myFunction方法,您可以按照示例中所示的方法执行。现在,如果“main”是“main”的方法。。。那我说不出你为什么要做这样的事

new Main().myFunction();
这将创建
Main
类的一个新实例,然后对其调用
myFunction()
方法


这将创建
Main
类的新实例,然后在其上调用
myFunction()
方法。

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

更详细的代码版本是:

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

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

更详细的代码版本是:

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

myFunction很可能是一个实例方法,而不是类(静态)方法,因此必须在类的实例上调用。由于您在静态方法中,无法直接调用实例方法,因此必须先创建一个实例,这是
new Main()
所做的,然后才能调用它。

最有可能的是myFunction是一个实例方法,而不是类(静态)方法,因此必须对类的实例进行调用。由于您在静态方法中,无法直接调用实例方法,因此必须先创建一个实例,这是
new Main()
所做的,然后才能调用它。

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

新建Main().myFunction()

可以细分为

new Main()//首先实例化,然后仅实例化 .myFunction()

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

新建Main().myFunction()

可以细分为

new Main()//首先实例化,然后仅实例化 .myFunction()

在语句中使用“new”调用Java方法意味着什么

它创建给定类的新实例

为什么不干脆做:myFunction()

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

public void myFunction() { 
    ....
}
为了调用一个实例方法,首先需要一个实例

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

静态
访问修饰符标记的方法是方法,它们属于整个类,不需要实例即可工作

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

这就是编译器错误的原因:

…无法从静态上下文调用非静态方法…1

这就是一切

1或类似的东西

在语句中使用“new”调用Java方法意味着什么

它创建给定类的新实例

为什么不干脆做:myFunction()

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

public void myFunction() { 
    ....
}
为了调用一个实例方法,首先需要一个实例

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

静态
访问修饰符标记的方法是方法,它们属于整个类,不需要实例即可工作

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

这就是编译器错误的原因:

…无法从静态上下文调用非静态方法…1

这就是一切


1或类似的东西

main
静态的
。如果
myFunction
不是,则不能简单地调用
myFunction()
@ephemient:“If”作为关键字。我们不知道其他代码在做什么。@Alexander Pogrebnyak:是的,我想说我不知道为什么,因为我看不到其余的代码。
main
static
。如果
myFunction
不是,则不能简单地调用
myFunction()
@ephemient:“If”作为关键字。我们不知道其他代码在做什么。@Alexander Pogrebnyak:是的,我想说“我不知道为什么”,因为我看不到其余的代码。