天天看点

static 与非static修饰的区别

请简述static 与非static修饰的区别

  1. 作用在方法上,方法的区别:static方法属于类,不属于类的实例对象,而非static方法属于类的实例对象,不属于类,static方法不需要实例对象就可以通过类名调用,且static方法中不能有实例成员(即实例方法或实例变量),而非static方法中可以以后static成员(即static方法,和static变量)
  2. 作用在变量上:static变量属于类,非static变量属于实例对象或者是局部变量,static变量可以用类名引用,而非static方法只能创建这个类的实例对象才能引用(即使用).
  3. 作用在类上: static类中知只能有static成员,不能有非static成员,而非static类可以由static成员也可以有非static成员.
  4. 总结,static修饰的方法,变量都属于该类本身,是该类所有,该类的实例也可以访问static修饰的成员,但是不同实例对象中访问的static成员是同一个(在同一程序中)…所以说static成员在一个程序中是独一无二的,他属于类,而类在程序中只能有一个类(可以由多个类的实例对象),所以程序中的static成员永远是同一个!