1、静态属性
1)例如:public static int age;
2)功能:各对象之间的数据有了沟通的渠道,实现了数据的共享。
3)静态属性属于类,为不同的对象所共有
4)public静态属性在类外的访问方式:
(1)类名.公有静态属性名
(2)对象名.公有静态属性名(不推荐这样用)
5)静态属性值一旦改变,所有类的对象均改变。
2、静态方法
1)例如:public static void main(String[] args)
2)使用方法:
类名.方法名(实际参数)
3)功能:用于访问静态属性
公有的静态属性在对象创建之前就可以访问。但为了更好地体现”封装性“,类中的属性一般要设置为私有的,如果把静态成员设置为私有的,在类外创建对象之前就没有办法访问静态成员了。
4)公有的静态方法在类外的两种访问方式
(1)类名.公有静态方法名(参数)
(2)对象名.公有静态方法名(参数)(不推荐这样用)
5)被static修饰的成员变量和成员方法独立于该类的任何对象,它不依赖类特定的实例,被类的所有实例共享。
3、静态代码块
1)功能:在静态属性的初始化过程相对复杂时,用于初始化静态属性
2)语法:
static{
代码块
}
3)仅在该类被加载时执行一次
4、非静态代码块(构造代码块)
1)形式:
{
代码块
}
2)定义在一个类之中
3)主要特点:
构造代码块会优先与构造方法执行,并且每次实例化对象的时候都会调用构造代码块中的代码。
5、执行顺序
1)静态属性和静态代码块(按照定义顺序,在类被加载的时候只执行一次)
2)非静态属性和非静态代码块(按照定义顺序,在类被实例化的时候执行)