Java 从另一个类调用方法的最有效方法

Java 从另一个类调用方法的最有效方法,java,methods,Java,Methods,假设我有一班和二班 第二类有一个方法 public static void helloWorld() { do something(); }; 通常我会从ClassOne调用Class2中的helloWorld方法,如下所示: ClassTwo classTwo = new ClassTwo (); classTwo.helloWorld(); ClassTwo.helloWorld(); 但我也可以这样做: ClassTwo classTwo = new ClassTwo ();

假设我有一班和二班

第二类有一个方法

public static void helloWorld() {
    do something();
};
通常我会从ClassOne调用Class2中的helloWorld方法,如下所示:

ClassTwo classTwo = new ClassTwo ();
classTwo.helloWorld();
ClassTwo.helloWorld();
但我也可以这样做:

ClassTwo classTwo = new ClassTwo ();
classTwo.helloWorld();
ClassTwo.helloWorld();
一种方法比另一种更可取吗?如果是,为什么


我很少看到有人调用这样的方法,但这似乎是一种有效的方法。

将ClassTwo方法更改为静态

public static void helloWorld() {
 do something();
};
现在你可以这样打电话:

ClassTwo.helloWorld();

将ClassTwo方法更改为static

public static void helloWorld() {
 do something();
};
现在你可以这样打电话:

ClassTwo.helloWorld();
class2.helloWorld()
是一种静态方法。此版本只能使用
ClassTwo
的静态变量;它不能使用任何实例变量。如果方法不需要实例变量,则应使用静态版本

如果该方法需要使用实例变量,则显然需要使用实例方法。

ClassTwo.helloWorld()
是一个静态方法。此版本只能使用
ClassTwo
的静态变量;它不能使用任何实例变量。如果方法不需要实例变量,则应使用静态版本


如果该方法需要使用实例变量,则显然需要使用实例方法。

如果该方法定义为
静态
则应使用类引用调用它,您可以使用对象引用调用它,但它不是首选的,也不是必需的

如果该方法不是静态的,而只是一个实例方法,那么必须使用对象引用调用它

Intance方法和字段属于特定对象。您需要一个对象来访问实例方法和字段。使用类引用无法访问非静态方法

静态方法属于该类。该类的所有对象共享该方法的公共行为。不能重写静态方法。它们可以通过类引用访问


要定义静态方法,可以使用
static
关键字

如果方法定义为
静态
则应使用类引用调用它,您可以使用对象引用调用它,但它不是首选的,也不是必需的

如果该方法不是静态的,而只是一个实例方法,那么必须使用对象引用调用它

Intance方法和字段属于特定对象。您需要一个对象来访问实例方法和字段。使用类引用无法访问非静态方法

静态方法属于该类。该类的所有对象共享该方法的公共行为。不能重写静态方法。它们可以通过类引用访问


要定义静态方法,可以使用
static
关键字

如果helloWorld()不是一个静态方法,那么如何调用像
ClassTwo.helloWorld()
这样的方法?第二个方法只有在方法是
static
编辑了我的代码以包含static关键字时才有效。您还有问题吗,我们很乐意为您提供帮助,但如果您的问题得到解决,您可以选择并将答案标记为已接受。您如何将
ClassTwo.helloWorld()
这样的方法称为helloWorlsd()不是静态方法第二种方法仅在方法为“编辑我的代码以包含静态关键字”的情况下有效。如果您还有问题,我们很乐意提供帮助,但如果您的查询得到解决,您可以选择并将答案标记为已接受。您甚至可以从空引用中调用它。不应该,但是可以。你甚至可以从空引用调用它。不应该,但是可以。