类成员和实例成员:
类中的成员:字段,方法,内部类
类成员: 使用static修饰的成员
实例成员:未使用static修饰的成员
类成员只能访问类成员,实例成员只能访问实例成员
类成员,直接属于类,可以通过类来访问static字段和static方法
实例成员,只属于对象,通过对象来访问非static方法
(对象其实可以访问类成员,但底层依然使用类名访问)
在static方法中,只能调用static成员
非static方法,可以调用静态成员,也可以访问实例成员
什么时候定义成static的字段和方法
如果这个一个状态/行为属于整个事物(类),就直接使用static修饰
被所有对象共享
在开发中,往往把工具方法使用static修饰
如果不使用static修饰,则这些方法属于该类的对象,我们得先创建对象再调用方法,在开发中工具对象只需要一份即可,可能把该类设计为单例的,但是还是有点麻烦
所以,一般的,在开发中设计工具方法,为了调用简单,我们使用static修饰
类成员的使用:
利处:对对象的共享数据进行单独空间的存储,节省空间,没有必要每一个对象中都存储一份,可以直接被类名调用
弊端:生命周期过长
类中的成员:字段,方法,内部类
类成员: 使用static修饰的成员
实例成员:未使用static修饰的成员
类成员只能访问类成员,实例成员只能访问实例成员
类成员,直接属于类,可以通过类来访问static字段和static方法
实例成员,只属于对象,通过对象来访问非static方法
(对象其实可以访问类成员,但底层依然使用类名访问)
在static方法中,只能调用static成员
非static方法,可以调用静态成员,也可以访问实例成员
什么时候定义成static的字段和方法
如果这个一个状态/行为属于整个事物(类),就直接使用static修饰
被所有对象共享
在开发中,往往把工具方法使用static修饰
如果不使用static修饰,则这些方法属于该类的对象,我们得先创建对象再调用方法,在开发中工具对象只需要一份即可,可能把该类设计为单例的,但是还是有点麻烦
所以,一般的,在开发中设计工具方法,为了调用简单,我们使用static修饰
类成员的使用:
利处:对对象的共享数据进行单独空间的存储,节省空间,没有必要每一个对象中都存储一份,可以直接被类名调用
弊端:生命周期过长