一、static的作用
1、static单词翻译为“静态的”。
2、static修饰的成员变量和成员方法是属于类的,和具体的对象无关。
3、static修饰的变量和方法都可以使用“类名.”的方式访问。
4、static修饰的变量和对象储存在方法区的静态常量池中,是共享的。
5、static修饰的代码块在main方法前执行,目的是修饰main方法。
二、static修饰的变量——静态变量、类变量。
1、使用格式:static 数据类型 变量名;
如:
static String type;
2、该类的某一个对象都共享同一个类变量的值,在内存中只有一个地址,它在类初次加载时会被初始化。
三、static修饰的方法——静态方法、类方法
1、定义格式:
修饰符列表 static 返回值类型 方法名(参数列表){
方法体;
}
如:
public class Money{
public static void main (String【】args){
}
public static int add(int a,int b){
int c =a+b;
return c;
}
}
2、静态方法不依附于任何对象进行访问,是没有this的。
注意:
(1)静态方法可以直接访问类静态成员变量和静态成员方法。
(2)静态方法中不能访问非静态成员方法和非静态变量;但在非静态成员方法中是可以访问静态成员变量和成员方法的。
(3)调用静态方法一般采用“类名.”的方式调用。
public class Money{
public static void main (String【】args){
Money.add(5,9);
}
public static int add(int a,int b){
int c =a+b;
return c;
}
}
四、静态代码块
1、语法格式:
static{
java语句;
}
2、静态代码块定义在成员位置,在类中方法外;在类加载时执行,并且只执行一次,优先于main方法和构造方法的执行。
public class Money{
static{
System.out.println("类加载");
}
public static void main (String【】args){
Money.add(5,9);
}
public static int add(int a,int b){
int c =a+b;
System.out.println(c);
return c;
}
}
运行结果:
3、静态代码块在一个类中可以编写多个,并遵循自上而下的顺序执行。
4、通常在静态代码块当中完成预备工作,完成数据的准备工作。