Java中关键字static的作用

2020-01-14  本文已影响0人  surrealtire

静态字符(域)

以下为一个简单的类。name为一个常规的变量,id特殊一点,由static修饰。为了简单,省略private修饰,以及get,set还有构造器之类的方法。

new两个对象,对这两个对象的name和id赋值,结果如下:

对比发现,由static修饰的id,两个对象的值均为22。static修饰的域为恒定的,即便是创建再多个对象,但static修饰的域只有一个,改变的话,所有的对象中这个值都会改变。

使用类名来调用域,如下图,分别展示了两个不同位置的调用。

第一次类名调用,值为0,因为此时id并没有赋值,初始化为0,第二次调用和对象名调用结果一致。

静态常量

通过final和static对变量限定,使其成为了一个常量,如PI,和System.out等。在该类中,我们没有对PI赋值,选择直接打印数值,结果出现了圆周率的值。

静态方法

静态方法可由类名直接调用,可以认为静态方法是没有this的方法。如下图:

应该采用类名来调用

创建对象后,使用对象名调用,虽然没有报错,但提示我们应使用类名来调用。

静态方法不可以访问非静态域。

非静态方法可以访问静态域

当我们去掉方法的static修饰时,非静态方法可以访问静态域

微信扫描二维码

关注SurrealFun获取更多精彩

上一篇 下一篇

猜你喜欢

热点阅读