静态修饰符static,用于修饰类中的成员变量和成员函数。
用static修饰的成员变量也可叫做类变量。
什么时候使用静态
什么时候定义静态成员变量?
当对象中出现共享数据时,将该数据定义为静态成员变量。
什么时候定义静态成员函数?
当功能内部没有访问到非静态数据时,该功能可以定义成静态。
static的特点:
1. 随着类的加载而加载,随着类的消失而消失。(其生命周期在该类中最长)
2. 优先于对象而存在,且被所有的对象所共享。
3. 可以直接被类名调用。
/*
定义一个Demo类
静态变量 country和静态方法getCountry()
*/
class Demo
{
public static String country = "China"; public static String getCountry()
{
return country;
}
} class StaticDemo
{
public static void main(String [] args)
{
//可直接通过类名.静态变量/静态方法调用
System.out.println(Demo.country);
System.out.println(Demo.getCountry());
}
}
类变量与实例变量的区别。
1.类变量的生命周期最长,实例变量跟随着其创建的对象。
静态使用注意事项:
静态方法只能访问静态成员,非静态方法则都可以访问。
在静态方法内部,不能出现this,super关键字,因为这两个关键字时随着对象的出现而出现,指向的时堆内存中的对象。
而静态方法是在方法区内,被类名所指向。