要从两方面下手:因为静态修饰的内容有成员变量和成员函数。
什么时候定义静态变量(类变量)呢?
当对象中出现共享数据时,该数据被静态所修饰。对象中特有的数据要定义成非静态存在于堆内存中。
什么时候定义静态函数呢?
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。
class Person
{
String name;//成员变量,实例变量
static String country = "CN";//静态的成员变量,类变量
public void show(){
System.out.println("name="+name+",country="+country);
}
}
class StaticDemo
{
public static void main(String[] args)
{
Person p1 = new Person();
/*
p1.name = "zhangsan";
p1.show();
Person p2 = new Person();
p2.name = "lisi";
p2.show();
*/
System.out.println(p1.country);
System.out.println(Person.country);
}
}
|
|