Java中主类中定义方法加static和不加static的区别
static的作用是:将属性或者方法修饰为该类的共享成员,即这个属性或方法是该类实例化的所有对象之间共享的,不为某个实例对象所独有,static属性或方法是存储在内存的公共区,一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。
static的变量是在类装载的时候就会被初始化,即,只要类被装载,不管是否使用了static变量,都会被初始化。
static的基本规则:
1.一个类的静态方法只能访问静态属性
2·一个类的静态方法不能直接调用非静态方法
3·如访问控制权限允许,static属性和方法可以使用类名加“.”的方式调用,也可以使用实例加“.”的方式调用
4·静态方法中不存在当前对象,因而不能使用this,也不能使用super
5·静态方法不能被非静态方法覆盖
6·构造方法不允许声明为static的
注:
- 非静态变量只限于实例,并只能通过实例引用被访问。
- 静态方法可以省略类名直接在主方法调用,非静态方法必须先实例化后再用实例调用。