1,static概念与功能
static是静态修饰符,一般修饰成员。被static修饰的成员属于类,不属于这个类的某个对象。
被static修饰的成员可以并且建议通过类名直接访问。也可以通过某个对象访到属于类的静态成员,多个对象共享使用同一个静态成员。
如:
学生类可以包含学校名称静态成员,所有学生实例对象共享同一个学校。
格式:
类名.静态成员变量名
类名.静态成员方法名(参数)
对象名.静态成员变量名 ------不建议,出现警告
对象名.静态成员方法名(参数) ------不建议,出现警告
2,static注意事项
- 静态内容是优先于对象存在,只能访问静态,不能使用this/super。(静态修饰的内容存于静态区)。
- 同一个类中,静态成员只能访问静态成员
如:
在学生类中定义静态方法printSchoolName只能打印静态的学校名称,不能打印自身的非静态name成员变量。 - main方法为静态方法仅仅为程序入口,不属于任何一个对象,所以可以定义在任意类中。
3,static与final连用定义静态常量
通常使用public static final来修饰某个类中的静态常量。此时标识符用全部大写,多个单词使用下划线连接。
格式: 类名.静态成员变量名
如:
定义包含静态成员的的类。
public class Company{
public static final String COMPANY_NAME = “跨年快乐”;
public static void method(){
System.out.println(“一个静态方法”);
}
}
使用类的静态成员不需要创建对象,直接使用类名即可。
System.out.println(Company. companyName); //打印跨年快乐
Company.method(); //调用一个静态方法
接口中的每个成员变量都默认使用public static final修饰,所有接口中的成员变量已是静态常量,由于接口没有构造方法,所以必须显示赋值。可以直接用接口名访问。