簡體   English   中英

將非靜態返回值合並到靜態方法中?

[英]Incorporating a non-static return value into a static method?

有什么技術可以在某個其他類的靜態方法中使用某個類的非靜態方法的返回值?

非靜態方法的相應單詞是instance method ,因為它只能在其類的實例上調用。 因此,您需要的是使用new創建的類的實例,然后可以在其上調用實例方法。

我建議閱讀Java教程中有關OO概念介紹

很難知道您在沒有任何代碼的情況下想要做什么(即使嘗試也可以),但是...

也許您想要單例模式:

public class MyClass {
    private static final MyClass INSTANCE = new MyClass();
    private MyClass() {}
    public static MyClass getInstance() {
        return INSTANCE;
    }
    public int someMethod() {
        // return some value;
    }
}

然后從另一類:

public class TheirClass {
    public static int whatever() {
        return MyClass.getInstance().someMethod();
    }
}

創建該類的實例,然后return instance.method();

在靜態方法中,創建非靜態方法所在類的實例,然后在創建的對象上調用非靜態方法。

沒有其他方法,因為非靜態方法可以調用其他非靜態靜態方法,並且還可以使用對類instance(“ this”)的引用; 因此只能在該類的實例上調用它:

公開課A {

 public int NonStaticMethodA() { int val; ..... return val; } public int NonStaticMethodB() { int val=this.NonStaticMethodA(); ..... return val; } 

}

公開B級{

 public static void StaticMethod() { A a = new A(); int value = a.NonStaticMethodB(); ..... } } 

如果要調用非靜態方法,則必須針對包含該方法的類的實例進行調用。

只要在靜態方法中可以使用其他類型的對象,就可以在該對象上調用該方法。

該對象可以在靜態方法中創建,可以作為參數傳遞給它,也可以是靜態字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM