在Java中,我们经常听到的就是静态两个字。那么今天就主要去了解静态方法和字段到底是有什么用的?
首先我们都知道,在如果使用static
修饰的就是属于静态的,而修饰的话就是属于实例的。那么就说明这两种类型之间肯定是有区别的。接下来就开始对比他们之间的区别到底在哪里。
- 在外部调用静态系列的,可以使用
类名.你要调用的部分
的方式调用,也可以使用对象名.你要调用的部分
的方式调用。而实例系列只能通过后者调用。也就是说静态系列可以无序创建对象 - 静态系列在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许方法实例成员变量和实例方法;实例方法则无这个限制。(这个是比较好理解的,就是说因为静态方法是可以通过类去调用的,这个时候可能这个类还没有实例化,他的一些对象是不可以使用的,所以为了避免这些错误就做了以上的限制)
- 静态系列的东西是伴随着类的诞生而诞生的,而实例系列则是伴随着类的实例化而诞生的。这就有了本质的区别。也就是说,静态系列是属于类的,而实例系列是属于对象。由此,我们可以知道,对于从属于一个类的多个实例对象而言,他们的静态字段和方法是一致的。
最后说一下静态方法和字段的使用场景。在Java中,大家都应该使用过Math类吧。在这个类中,如果我们需要使用pi的值,我们就可以直接通过Math.PI
来访问,其原理就是因为这个PI的值是通过static
来修饰的。如图:
要是使用实例字段就必须要去创建对象才能找到这个值。这个时候就体现出了静态的好处了。同理静态方法也是一致的。
如果有兴趣的,可以点开看看我们常用的工具类,大部分应该都是用static来修饰的,这样子方便我们的调用。