static叫静态修饰符,用于修饰成员(成员变量和成员方法)
特点:当成员被static修饰后,只要类进入内存,就在方法区(或称共享区,数据区)专门开个空间来存放该成员,而之后即使新建再多的对象也不会为该成员开辟空间。
效果:类的对象的共同属性和方法可以定义为static,从而减少内存空间的损耗。
使用:1,被static修饰过的成员不仅可通过对象调用,也可以直接用类调用,格式:类名.静态成员。
2,在静态方法中不能调用非静态成员,相反,非静态方法可以调用静态成员。
举例说明:
class Person
{
static String country=“China”;//静态成员变量
private int age;
Person(int age)
{
this.age=age;
}
static void showHappy()
{
System.out.println("haha");//静态成员方法
}
}
class Demo
{
public static void main(String[] args)
{
System.out.println(Person.country);//直接用类名调用静态成员,即使没建立对象
Person.showHappy();
Person p=new Person(20);
System.out.println(P.country);//同样可以用对象来调用静态成员
p.showHappy();
}
}
===========================================================================================================
补充:1,尽管静态方法不能调用非静态成员,当时可以通过建立对象,然后通过对象.成员的方式在静态方法中调用非静态成员。
2,当功能里没有调用到非静态成员时,一般把该功能定义为静态方法。
参考资料:http://blog.csdn.net/zolovegd/article/details/2914559