2013-07-09 156 views
1

此代碼適合我。如何創建java類的對象

public class ABC 
{ 
    public int sayHello() 
    { 
    System.out.println("Hello Friends...!!!"); 
    return 1; 
    } 
} 

public class XYZ 
{ 
    public static void main(String[] args){ 
    // 1 Option 
    ABC objABC = new ABC(); 
    int i = objABC.sayHello(); 

    // 2 Option 
    int j = new ABC().sayHello(); 
    } 
} 

在這裏,我呼籲有兩種不同的方式Class ABCsayHello()方法。 我只是想知道哪個選項是最佳和最佳實踐使用。

+0

也許偏移,但爲什麼「sayHello」返回一個int? –

+0

@內維爾K我只是想解釋你的人我想要什麼形成你的身邊,毫無意義的方法名稱。 – Vijay

回答

0

絕對是第一選擇

1)如果您需要再次調用相同的方法,你將不必再調用構造函數。也就是說,您不會創建另一個實例並保存創建新對象的加載時間。 2)如果你想關閉一個流或者將它設置爲null(就像IO相關操作所需要的那樣),第二個選項不會給你任何引用對象來這樣做,每個調用構造函數。

1
  • 使用ABC objABC = new ABC(),您將始終有一個對象參考 。使用new ABC()您無法再次訪問。
  • 假設有兩種方法。 sayHello()sayGoodBye(),然後 使用第一種方法。你只需要使用 objABC.sayHelloobjABC.sayGoodBye()來給他們打電話。
  • 但在第二種情況下,您正在創建一個沒有參考的對象,並且調用其上的方法 。您不能通過一些參考變量來引用同一個對象而執行其他一些操作。

所以它始終是更好地使用即ABC objABC = new ABC();

1

第一個選項,則在這兩種情況下使用ABC類的參考撥打電話的方法sayHello()。在案例#1該引用可以被重新用於進行其他調用,並在案件#2,對創建的對象的引用丟失,所以你不能進一步調用該實例。

因此沒有最佳答案。使用#1當你想保留實例和對它的引用。

1

創建一個只調用一個方法的對象的想法很奇怪,但一如既往。

選項1:如果您將來需要objABC進一步調用sayHello(),則此方法會更好。選項2:如果您只對一個呼叫感興趣,則可以。但在這種情況下,我會考慮使用靜態方法來保存對象實例化。

1

這取決於。如果你只是想執行的方法,而無需對象的引用從該方法被稱爲:

int j = new ABC().sayHello(); 

如果你想保持對該對象的引用,後來重用,則:

ABC objABC = new ABC(); 
      int i = objABC.sayHello(); 
1

ABC objABC = new ABC();好多了,你有你的對象的實例,你可以使用它,只要你想

,如果你想要做如下調用int j = new ABC().sayHello();我認爲最好是有它的靜態,這樣你就可以把它無需創建類實例ABC.sayHello()

2

絕對是第一選擇

1)如果您需要再次調用相同的方法,你將不必再調用構造函數。也就是說,你不會創建另一個實例。 2)如果你想關閉一個流或者將它設置爲空(就像IO相關操作所需要的那樣),第二個選項不會給你任何引用對象。

1

如果你只是想執行該方法,而沒有對象的引用,所以它只用於調用一個方法。

int j = new ABC().sayHello(); 

但是,

ABC objABC = new ABC(); 
int i = objABC.sayHello(); 

這是更好,如果你需要objABC在未來的sayHello進一步調用()。