2017-10-10 79 views
-1

主要方法在靜態方法&靜塊,所以不能使用該實例變量&我們不能創建一個對象,然後我們如何使用實例變量&創建主的,因爲main方法內的物體,方法也是一種靜態方法。關於在Java

+2

誰說你不能在main方法內創建一個對象?只需創建它.. – Optional

+2

「在靜態方法中......我們不能創建一個對象」< - 不,這是錯誤的。當然你可以用靜態方法創建對象。 –

+1

請參閱如何提供[最小完整可驗證示例](https://stackoverflow.com/help/mcve)。 –

回答

1

你的第一個假設是正確的,而第二個假設是錯誤的。您可以在靜態方法內創建一個新實例。

0

你不能直接訪問靜態方法中的非靜態實例變量。但是您可以在靜態方法中創建類的對象,並在靜態方法中訪問該對象的靜態和非靜態實例變量(該變量是靜態方法中的局部變量)。

public class MyClass { 

    int i = 78; 

    public static void main(String args[]) { 

     MyClass c = new MyClass(); 
     System.out.println("i is = " + c.i); 
    } 

} 
0

您可以創建主要方法中的對象,並調用靜態方法和變量,你需要 classname.staticMethod()。 主內部寫下 classname instance _variable = new classname()。

0

包含satic方法的類通常用final修飾符標記。最後一堂課是一個無法擴展的課程。

您可以對Util類使用靜態方法,您不需要處理stat只接收sone輸入數據,對它們執行某些操作並返回結果。一個很好的例子可以是Apache Commons Lang library。您可以查看org.apache.commons.lang3.StringUtilshere的源代碼。

可以實例任何Java對象的靜態方法,例如:

public final class StaticDemo { 
    public static String echo(String text) { 
     String response = new String("say ") + text; // for only demonstrating purpose 
     return response; 
    } 
} 

在靜態方法,你可以只使用靜態類成員:

public final class StaticDemo { 
    private static final String SAY = "say"; 

    public static String echo(String text) { 
     String response = SAY + text; // for only demonstrating purpose 
     return response; 
    } 
} 

類變量舉行的狀態對象,所以從屬於該類的靜態方法中使用它們沒有任何意義。