静态:static
用法:是一个修饰符,用于修饰成员(成员变量和成员函数).
当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用,类名.静态成员。
static特点:
1,随着类的加载而加载。
也就是说:静态会随着类的消失而消失。说明它的生命周期最长。
2,优先于对象存在。
明确一点:静态是先存在。对象是后存在。
3,被所有对象所共享
4,可以直接被类名所调用。
实力变量和类变量的区别:
1、存放的位置:
类变量随着类的加载而存在于方法区中。
实例变量随着对象的建立而存在于堆内存中。
2、生命周期:
类变量生命周期最长,随着类的消失而消失。
实例变量生命周期随着对象的消失而消失。
*/
class Person
{
String name;//成员变量,实例变量(创建对象后其才存在)
static String country = "CN";//静态的成员变量,类变量,存于共享区,当Person类加载到内存中时,静态的country随其加载,并一直存在,直到Person类消失才一起消失。
public void show()
{
System.out.println(name+"...."+country);
}
}
class StaticDemo
{
public static void main(String[] args)
{
Person p = new Person();
p.name = "zhangsan";
p.show();
//System.out.println(Person.country);//可以被类名直接调用
}
}
class Person
{
String name;
public static void show()
{
System.out.println("haha");//未访问name,可以静态。
}
}
class
{
public static void main(String[] args)
{
//Person p = new Person();
//p.show();
Person.show();//可以直接类名调用
}
}
|