一个类中有成员变量和成员方法,但是都是依赖对象存在的,也就是先创建对象,再通过对象来调用成员变量和成员方法。如果某些属性是所有对象的共享的,且不需要依赖对象存在,这时候就需要static关键字了。
举个例子,每个班级都有自己的班级名称,且班级里的学生共享一个班级名称,班级名称是不依赖学生对象而存在的,而且是被所有的学生对象共享的。
static关键字的特点
1.随着类的加载而加载
2.优先于对象存在
3.被所有的对象共享
4.可以通过类名.变量/类名.方法的方式调用
代码如下
class Student {
private String name; //姓名
private int age; //年龄
private int sno; //学号
public static String cno = "软件工程一班" ; //班级名称
public Student(String name,int age, int sno) {
this.name = name;
this.age = age;
this.sno = sno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getSno() {
return sno;
}
public void setSno(int sno) {
this.sno = sno;
}
public String getCno() {
return cno;
}
}
public class Test1 {
public static void main(String[] args) {
Student s1 = new Student("张三",18,10);
Student s2= new Student("李四",18,10);
System.out.println(s1.getName()+" 属于"+s1.getCno());
System.out.println(s2.getName()+" 属于"+s2.getCno());
}
}
运行结果如下
张三 属于软件工程一班
李四 属于软件工程一班
还有一种使用方式就是static修饰方法,称为静态成员方法,主方法用的就是static关键字修饰的。