有时在特定类的所有实例中共享值是很有用的。静态字段和静态常量通过属于类而不是实际对象来启用这种类型的共享
通过在优锐课的java架构学习分享中,讨论了关于类中定义的字段和方法只能在创建该类类型的对象时使用。例如,考虑一个简单的Item类,它可以跟踪商店中的商品:
public class Item {
private String itemName;
public Item(String itemName)
{
this.itemName = itemName;
}
public String getItemName()
{
return itemName;
}
}
为了能够使用getItemName(),我们必须首先创建一个Item对象,在本例中为catFood:
public class StaticExample {
public static void main(String[] args) {
Item catFood = new Item("Whiskas");
System.out.println(catFood.getItemName());
}
}
但是,如果静态修饰符包含在字段或方法声明中,则使用字段或方法不需要类的实例-它们与类关联,而不是单个对象。如果你回顾以上示例,你将看到静态修饰符已在主方法声明中使用:
public static void main(String[] args) {
主要方法是静态方法,在调用对象之前不需要对象存在。作为主()是任何Java应用程序的起点,实际上已经没有对象来调用它。