2011-12-18 72 views
1

我有一個主要的窗體,當用戶點擊一個按鈕時,它會彈出一個氣球提示。氣球提示是一個在我的BalloonTip類的主窗體類中實例化的對象。然後我有第二個表單進行設置。當用戶點擊設置表單中的內容時,也會出現氣球提示。我目前有一個在我的Main類以及我的SettingsForm類中實例化的balloontip對象。我的兩個問題是:從兩個不同的類創建一個對象兩次是不好的?

  1. 是否有更合適的方法來處理這種類型的情況?
  2. 如果在每個類中創建一個對象兩次1,如果對象具有相同的名稱(例如objectBalloon),是否會在編譯器中導致任何歧義?
+2

具有多個類的實例沒有問題。 – 2011-12-18 18:40:38

+0

爲什麼它首先在服務器端創建? – lucifurious 2011-12-18 18:41:05

+0

並沒有問題有兩個相同名稱的變量,只要它們被範圍分開。 – Patrick 2011-12-18 18:41:33

回答

3

當你實例化一個對象時,這總是在一定的範圍內。

因此,例如:

public void DoSomething() 
{ 
    BalloonTip b = new BalloonTip(); 

    DoSomethingElse(); 
} 

public void DoSomethingElse() 
{ 
    BalloonTip b = new BalloonTip(); 
} 

會給你BalloonTip的兩個不同的實例,它們都被稱爲「B」,但它們都只能在聲明它們的功能範圍內有效。

你應該看到一個類定義作爲一個藍圖,從中可以實例化多個對象。在一個範圍內,您可以有多個實例,但它們應該有不同的名稱。

當作用域不重疊時,可以使用相同的名稱指向不同的實例。

您也可以將實例傳遞給另一個方法,並且在該函數中可以通過其他名稱引用該實例。

public void DoSomething() 
{ 
    BalloonTip b = new BalloonTip(); 

    DoSomethingElse(b); 
} 

public void DoSomethingElse(BalloonTip c) 
{ 
    // c points to the same instance as b in the previous function 
} 
相關問題