繁体   English   中英

Java中的OOP-Android

[英]OOP in JAVA - Android

从另一个类调用方法的最正确方法是什么?

创建对象更正确:

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方法是不可替代的 ,因此,测试/模拟可能会困难得多。

您没有选择的余地。 你只能做

MyClass.myMethod(); 

如果该方法被定义为“类方法”:

static void myMethod() {}

这些对象不作用于任何特定对象,因此在调用它们时不会提供任何对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM