static 是Java中的常见关键字,可以用来定义属性、方法以及内部类。
一、static属性
1.static属性是公共(全局)属性,可以由类名称直接调用,类的实例化对象可以对该进行修改,从规范的角度,最好由类进行修改。
注意:static描述的是一个全局的概念,应该在类中定义,不能在方法中进行定义。
2.static属性定义在类中,但是不受类的实例化对象的控制,可以在没有类的实例化对象使用。
3.在进行类的设计时,首选的是非static属性,在考虑到公共信息的存储时才会考虑到static属性。非static属性只有在产生类的实例对象时才可以使用。
二、static 方法
1.static 方法的主要特点在于可以直接由类名称在没有实例化对象的前提下进行调用
例如:在如下代码中,在类Person中定义了一个static 方法,在main方法中可以直接通过类名称来调用
2.static 方法和非static方法在调用上的区别:
(1)static 方法只允许调用static 属性或static 方法;
|- main方法是static方法;
|- 在static 方法中不可以使用this关键字,因为staic可以在没有实例化对象的时候使用,而this关键字描述的是本类对象,会自相矛盾
(2)非static方法允许调用static 属性或static 方法;