static 定义的属性 相当于类中的公共属性,(所有的对象都有的属性)对于任意的一个对象,修改了此属性值都将影响其他的对象
Book.pub ="北京大学";(可以利用类名称直接调用)
static 属性 与非static属性有一个最大的区别:非static属性必须实例化后才可以访问。但是static属性不受实例化对象限制。即没有实例化对象情况下,也可以调用static 属性。实例化对象中,也可以修改static属性。
static 方法不能直接访问普通方法或属性,只能调用static属性或方法;
而非static方法可以访问static属性或方法;
因为:
所有非static 定义的结构,必须在类y已经明确产生实例化对象时才会分配堆空间才可以使用;
所有static定义的结构,不受实例化对象的控制,即可以再没有实例化的时候访问。
main方法就是一个static方法 static方法只能调用static方法
一个类中的非static方法 如果要在main方法中访问,则这个class 必须实例化 通过对象调用
摘自《第一行代码》
static的实际应用:
统计实例化对象个数