1、用来修饰成员变量的时候
表示该变量是属于该类,但是不是属于该对象特有的,
代码:
public class string {
static int a;
public void seta(int aa) {
a=aa;
}
public static void main(String[] args) {
string b=new string();
b.seta(1);
string c=new string();
System.out.println(c.a);
}
}
这样就可以实现变量共享
2、用来修饰方法的时候
代表该方法是这个类所有的,可以直接通过类.静态方法()进行调用
public class string {
static int a;
public void seta(int aa) {
a=aa;
}
public static void say() {
System.out.println("1111");
}
public static void main(String[] args) {
string b=new string();
b.seta(1);
string c=new string();
System.out.println(c.a);
string.say();
}
}
注意:通常我们不使用静态方法访问非静态变量(分先后)
静态方法不能使用this,
如果是通过对象.静态方法进行调用的话,它会先编译成类.静态方法
静态代码块:
第一用到代码时,代码只执行一次
通常是对静态变量进行赋值
package DemoRandom;
public class string {
static int a;
static {
System.out.println("111");
}
public static void main(String[] args) {
string b=new string();
string c=new string();
}
}
这样的结果只会输出一次,不会有两次