0

我知道这是一个非常基本的问题。第二部分也不适合 OO 世界。然而,当我在谷歌上搜索答案时,我得到了很多结果,其中一些结果相互矛盾,所以我想清除所有的东西。我还想知道这些方法在内存分配方面的区别。提前致谢。

4

4 回答 4

2

我们在 OO 编程中使用类的原因是我们可以封装状态。静态方法(充其量)只会维持一个状态。实例化的对象可以维护该实例唯一的状态,并且单独的实例不会相互影响(除非明确实现)。

例如,想象一个简单的类,它维护一个方法被调用的次数,并通过一个属性公开该计数。仅使用静态成员,您只能有一个计数。使用实例成员,您可以创建多个对象,并且每个对象都将保持自己的不同计数。

如果一个成员根本没有任何状态(也就是说,一个方法不使用未在该方法中声明或作为参数传递给该方法的变量),那么将其设为静态是一个好主意。

于 2012-07-18T09:22:06.207 回答
0

这取决于用途。如果您需要几个方法来做不同的事情,或者如果您没有任何非静态成员,您应该使用静态类。

如果您的方法依赖于彼此处理的数据并且您需要创建变量和属性,您应该坚持使用非静态类,因为用户可以同时初始化多个实例。

于 2012-07-18T09:14:00.917 回答
0

如果您希望您的方法自己执行一些实用程序任务而无需维护任何上下文,您可以创建静态方法。

然而,要实例化的类在成员变量和成员对象方面维护一些上下文。这些函数使用这些上下文为您执行一些操作。

于 2012-07-18T09:14:15.170 回答
0

假设您想在项目的不同位置使用某些函数假设它计算一些东西,所以它没有任何变量,所以在它完成后你不需要它,你将它声明为静态

对不起我糟糕的英语

于 2012-07-18T09:32:29.193 回答