据我所知,我们只能在静态函数中使用静态数据。
但是,我们的main()
函数是静态的 - 即Public static void main
。我们怎样才能使用某些xyz类的其他函数,这些函数在我们的main函数中是非静态的?
答案 0 :(得分:8)
创建要在其上调用非静态成员的类的实例。
答案 1 :(得分:4)
这不是“只能在静态函数中使用静态数据”的问题 - 这需要一些方式来获取实例以调用该实例的方法类型。
现在你获取一个实例来调用方法取决于你想要做什么。您可能想要创建一个新实例 - 或者一个实例可能已作为参数传入,或者可以通过其他方式获得。
通常您使用特定州的实例 - 您对哪种状态感兴趣?
答案 2 :(得分:3)
您在静态主函数中创建xyz类的实例,然后访问非静态函数。
答案 3 :(得分:1)
在静态方法中使用实例方法并非不可能。要使用实例方法,您只需要对实例的引用。
当您在非静态方法中时,您隐式地拥有对该实例的引用,并且您还可以显式使用this
关键字。如果要使用另一个实例的实例方法,则仍需要对该实例的引用。
如果在静态方法中创建对象(或者在非静态方法中),则可以使用其实例方法。例如:
// Create an object
StringBuilder s = new StringBuilder();
// Use an instance method
s.Append(42);
// And another
string x = s.ToString();
答案 4 :(得分:0)
您可以在静态函数中实例化Xyz的新实例并调用其方法。但是,从静态方法中,您无法访问同一类中的非静态方法。
答案 5 :(得分:0)
我觉得你很困惑。您不能通过'this'从同一类的静态方法中引用实例变量/方法(因为没有引用'this')。您可以在静态方法中创建其他类的实例并引用它们的公共实例变量/方法等,如前所述。您还可以将对象作为参数传递给静态方法,并执行相同的操作。