package java_test; /* * static关键字作用:是一个修饰符,用于修饰成员(成员变量,成员方法) * 被static修饰后的成员变量只有1份 * 当成员被static修饰之后,多了一种访问方式,除了可以被对象访问,还可以被类名直接调用(类名.静态成员) * */ /*static特点: * 1.随着类的加载而加载 * 2.优先于对象的存在 * 3.被所有的对象所共享的 * 4.可以直接被类名所调用 * 存放位置: * 类变量随着类的加载而存在于data内存区的 * 实例变量随着对象的建立而存在于堆内存 * * 生命周期: * 类变量生命周期最长,随着类的消失而消失 * 实例变量生命周期比类变量短,随着对象的消失而消失 * * 方法注意事项: * 1.静态方法只能访问静态成员 * 2.非静态方法既能访问静态成员(成员变量,成员方法)也能访问非静态的成员 * 3.静态的方法中是不可以定义this和super关键字的 * 因为静态优先于对象存在,所以静态方法不可以出现this super * */ public class A6_34 { public static void main(String[] args){ Teacher a=new Teacher(); Teacher.print(); } } class Teacher{ static String name; int age;//实例变量 static String country;//静态变量(类变量) static void print(){ String AA="你好时间"; System.out.println(AA); } }
什么时候使用静态
从两方面入手:
1.什么时候使用静态的成员变量:
当属于同一个类的所有对象出现共享数据时,需要将存储这个共享数据的成员用static修饰
2.什么时候使用静态方法:
当功能内部没有访问到非静态的成员时(对象特有的数据),那么该功能可以定义成静态的