面向对象

static关键字总结

简介:被static关键字修饰的方法或者变量不需要依赖new出来的对象进行访问,只要类被加载了,就可以通过类名去进行调用。
static可以修饰:成员变量、普通方法、方法块(静态代码块)
从JVM的类加载机制的角度讲,静态资源是类初始化的时候加载的,而非静态资源是类new的时候加载的

static定义属性(成员变量)

被static修饰的变量时属于类变量,可以直接通过类名.变量名来进行访问,而不需要new出一个对象进行访问(但是可以用对象.变量名进行访问***不推荐***,)。
面向对象_第1张图片
静态变量和非静态变量的区别:
静态变量被所有对象共享,当类在初次加载时会被初始化,在内存中只有一个副本。
非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
注意:static是不能修饰局部变量的,只能修饰成员变量。会发生编译报错,如下图所示:
面向对象_第2张图片

static修饰方法

被static修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要new出一个对象来。
面向对象_第3张图片

你可能感兴趣的:(面向对象,java)