簡體   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