使用";调用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:是的,我想说“我不知道为什么”,因为我看不到其余的代码。