java中,如何理解静态的成员方法

来源:百度知道 编辑:UC知道 时间:2024/06/23 14:35:40
静态成员变量就是在内存的静态存储区开辟一段空间,那么静态的成员方法又是做什么的呢

所谓静态方法,就是通过类名来调用(当然通过类对象来调用一样是可以的,就像core java里说的一样,容易让人混淆!)的方法,
而静态变量它是一种共享变量(VB.net里面如此称呼,比较容易理解).,任何通过类名来调用,都可以改变其值.

关于静态方法(通过类产生的对象)调用静态方法,调用非静态方法(通过类名或都是对象调用)都是可以的,但是,静态方法可以调用静态变量而不可以调用非静态变量(Error(12,30): non-static variable a cannot be referenced from a static context)

以下是thinking in java 里面的关于static 的描述:

static关键字
通常,我们创建类时会指出那个类的对象的外观与行为。除非用new创建那个类的一个对象,否则实际上并未得到任何东西。(注意,这里其实就是说的引用和真正的对象创建问题)只有执行了new后,才会正式生成数据存储空间,并可使用相应的方法。
但在两种特殊的情形下,上述方法并不堪用。一种情形是只想用一个存储区域来保存一个特定的数据——无论要创建多少个对象,甚至根本不创建对象。另一种情形是我们需要一个特殊的方法,它没有与这个类的任何对象关联。也就是说,即使没有创建对象,也需要一个能调用的方法。为满足这两方面的要求,可使用static(静态)关键字。一旦将什么东西设为static,数据或方法就不会同那个类的任何对象实例联系到一起。所以尽管从未创建那个类的一个对象,仍能调用一个static方法,或访问一些static数据。而在这之前,对于非static数据和方法,我们必须创建一个对象,并用那个对象访问数据或方法。这是由于非static数据和方法必须知道它们操作的具体对象。当然,在正式使用前,由于static方法不需要创建任何对象,所以它们不可简单地调用其他那些成员,同时不引用一个已命名的对象,从而直接访问非static成员或方法(因为非static成员和方法必须同一个特定的对象关联到一起)。
有些面向对象的语言使用了"类数据"和"类方法"这两个术语。它们意味着数据和方法只是为作为一个整体的类