4.类的static字段与非static字段区别是什么?什么情况应该使用static修饰符?请举例说明
用static修饰符修饰的方法称为静态方法,它属于类方法,不属于类的任何对象。不用static修饰符限定的方法,虽然在类中定义,但其实是为对象而定义。static方法内部的代码,只能访问类中的static属性或方法,不能访问类中的非static属性或方法(因为它们属于对象),但非static方法(对象方法)可以访问static属性或方法。当使用static修饰数据成员时,此时不单独属于任何一个类的具体对象,而是属于类的静态数据成员。它被保存于类的内存区的公共存储单元,所以当类的任意一个对象访问它的时候,得到的值都是一样的。
比如当需要类的多个对象公用某个数据时,则需要使用静态数据成员。