从另一个类调用方法的最正确方法是什么?
创建对象更正确:
private MyClass myclass;
myclass = new MyClass();
然后调用一个方法:
myclass.mymethod();
或者直接从类中调用:
MyClass.mymethod();
哪个更有优势?系统执行哪个成本更低、难度更小?
最佳答案
它们可能不等价。
能够调用:
MyClass.mymethod();
mymethod
必须是一个static
方法:
public MyClass {
public static void mymethod() { /* something */ }
}
的确,如果 mymethod
是 static
方法,您也可以像调用实例方法,如:
myclass = new MyClass();
myclass.mymethod(); // works even if mymethod is static
但是,归根结底,在性能方面(关于方法调用本身),这两种方法之间没有明显的区别。
您应该选择在语义上更有意义的方法:
mymethod
是只对类的特定实例有意义的操作吗?- 让它成为一个实例(非
static
)方法
- 让它成为一个实例(非
mymethod
是一个不需要实例来执行的操作吗?- 让它成为一个
static
方法。
- 让它成为一个
值得注意的是,虽然它们不是炸弹,但您应该尽可能避免使用static
方法。您添加的 static
方法越多,您的 OO 代码就越过程化。更不用说 static
方法不是可重写的,因此,可能更难测试/模拟。
关于java - JAVA 中的 OOP - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49582560/