2011-12-18 75 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 
} 
相关问题