static关键字:
什么是static关键字?
它是一个修饰符,代表静态的意思,他可以修饰成员变量和成员方法,不能修饰构造方法。
static关键字有什么特点?
1、被static所修饰的成员是随着字节码文件对象的加载而加载,所以是优先于对象存在于内存中;
2、被static所修饰的成员被该类下所有的对象所共享;
3、被static所修饰的成员可以通过类名.直接调用;
类名.属性名
类名.方法名()
static关键字注意事项?
1、静态方法中不能有this关键字;
ps:this 表示对象的引用,有对象调用this所在的方法,this就表示该对象,而静态方法是通过类名调用的,没有对象产生,所以this就无意义。
2、静态方法中可以调用静态成员变量和静态成员方法,但是不可以调用非静态成员变量和调用非静态成员方法;
非静态方法中可以调用静态成员变量和静态成员方法,也可以调用非静态成员变量和调用非静态成员方法
ps:调用方法是默认为
this.方法名()
而在静态方法中不能有this关键字,当调用静态方法时,可以通过
类名.方法名()
进行调用。
public class StaticDemo {
public static void main(String[] args) {
Students s1 = new Students();
s1.name = "张三";
s1.age = 18;
s1.city = "成都";
System.out.println(s1.name+"--"+s1.age+"--"+s1.city);
Students s2 = new Students();
s2.name = "李四";
s2.age = 20;
System.out.println(s2.name+"--"+s2.age+"--"+s2.city);
Students s3 = new Students();
s3.name = "王五";
s3.age = 20;
System.out.println(s3.name+"--"+s3.age+"--"+s3.city);
}
}
class Students{
String name;
int age;
static String city;
}