静态字符(域)
以下为一个简单的类。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获取更多精彩
网友评论