1、何时用静态变量
当数据中有共享数据时,该数据被静态修饰。
对象中的特有数据定义成非静态,存在于堆内存中。
例如:
购进一批同个牌子的汽车,那么这些汽车的品牌,就是共享数据,就可以定义为静态。
但是,每辆汽车都有各自的发动机编号、车驾号,这些都是特有数据,必须定义为非静。
2、何时用静态方法
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。
public class StaticDemo7 { public static void main(String[] args) { Dog dog = new Dog(); dog.show(); } } class Dog { String name;// 那么该内部就要定义成静态的。static String name; public void show() { System.out.println("haha"); // 方法未访问到name } }