static关键字是一个修饰符
常常用于定义不同对象中,相同参数且参数值相同的变量
1.用于修饰成员(成员变量 成员方法),被static修饰后的成员变量只有一份,且值相同
2.使用了static关键字修饰的成员变量,还可以使用类名.静态成员变量进行访问
特点:1.随着类的加载而被加载,所以可以被类名.静态成员变量进行访问
2.优点于对象的存在 3.被所有对象所共享
静态方法只能访问静态的成员
非静态方法既能访问静态成员也能访问非静态成员
静态方法不可以使用this super关键字
package 概念;
public class Static {
public static void main(String[] args) {
student a=new student();
a.country="中国";
a.print();
a.print1();
student b=new student();
System.out.println(b.country);
//等价于System.out.println(student.country);
}
}
class student{
static String name;
int age;//实例变量 非静态变量
static String country;//静态变量
public static void print(){
System.out.println(name);
}
public void print1(){
String BB="这不是静态成员,只有在class student{的才是成员,此时BB是局部变量,局部变量不能为局部变量修饰";
System.out.println(age);
System.out.println(country);
}
/*public static void print1(){
System.out.println(age);
}*/ //Error:(22, 28) java: 无法从静态上下文中引用非静态 变量 age,即age不是静态成员,无法使用静态方法访问
}
代码执行结果:
null
0
中国
中国