在这一部分中,我们讨论使用关键字来创建属于类而不是类的实例的字段和方法。
当从同一类蓝图创建多个对象时,它们各自拥有自己的独立副本的实例变量。在类的情况下,实例变量是、和。每个对象都有它们自己的这些变量的值,存储在不同的内存位置。
有时,您希望拥有对所有对象都通用的变量。这可以通过使用修饰符来实现。在声明中具有修饰符的字段称为字段或变量。它们与类相关联,而不是与任何对象相关联。类的每个实例共享一个类变量,该变量位于内存中的一个固定位置。任何对象都可以更改类变量的值,但也可以在不创建类的实例的情况下操作类变量。
例如,假设您想创建一些对象并为每个对象分配一个序列号,从第一个对象开始为1。这个ID号对于每个对象是唯一的,因此是一个实例变量。同时,您需要一个字段来跟踪已创建的对象的数量,以便知道要分配给下一个对象的ID是什么。这样的字段与任何个别对象都无关,而是与整个类相关。为此,您需要一个类变量,如下所示:
类变量通过类名本身来引用,如
这使得它们被视为类变量。
您可以使用构造函数来设置实例变量并增加类变量:
Java编程语言支持静态方法和静态变量。静态方法在其声明中具有修饰符,应该使用类名来调用,而不需要创建类的实例,如下所示:
静态方法的一个常见用途是访问静态字段。例如,我们可以在类中添加一个静态方法来访问静态字段:
不是所有的实例变量和类变量的组合以及方法都是允许的:
- 实例方法可以直接访问实例变量和实例方法。
- 实例方法可以直接访问类变量和类方法。
- 类方法可以直接访问类变量和类方法。
- 类方法不能直接访问实例变量或实例方法,它们必须使用对象引用。此外,类方法不能使用关键字,因为没有实例可以让引用。
修饰符与修饰符结合使用,也用于定义常量。 修饰符表示该字段的值不可更改。
例如,下面的变量声明定义了一个名为的常量,其值是圆周率的近似值(圆的周长与直径之比):
以这种方式定义的常量不能被重新赋值,如果你的程序试图这样做,将会导致编译时错误。按照惯例,常量值的名称使用大写字母拼写。如果名称由多个单词组成,单词之间用下划线(_)分隔。
在本节中进行的所有修改后,类现在如下所示:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/9351.html