static 关键字
作用:是一个修饰符,用于修饰成员(成员变量,成员方法)
被static修饰后的成员变量只有一份
当成员被static修饰后多了一种访问方式,除了可以对象调用之外,还可以被类直接调用(类名.静态成员);static 的特点:
1,.随着类的加载而被加载
2,优先于对象的存在
3,.被所有的对象所共享
4,可以直接被类名所调用
静态成员变量(类变量)和非静态变量(实例变量)的区别:
1,存放位置
类变量随着类的加载而存在于data内存区
实例变量随着对象的建立而存在于堆内存区
2,生命周期
类变量生命周期最长,随着类的消失而消失
实例变量生命周期比类变量短,它是随着对象的消失而消失
方法注意事项:
1,静态的方法只能访问静态的成员(成员变量,成员方法)
2,非静态的方法既能访问静态的成员(成员变量,成员方法),也能访问非静态的成员
3,静态的方法中不可以定义this super 关键字
因为静态优先于对象存在,所以静态方法不可以出现this
什么时候使用静态?
因为static 所修饰的内容是成员(成员变量,成员方法),所以可以从两个方面入手
1,什么时候使用静态的成员变量?
当属于同一个类的所有对象出现共享数据时,需要将存储这个共享数据的成员变量用static修饰
2,什么时候使用静态方法?
当功能内部没有访问到非静态的成员时(对象特有的数据),那么该功能可以定义成静态的
如:
public class A_6_37 {
public static void main(String[] args){
Person A=new Person();
A.name="kkl";
A.country="China";
System.out.println(A.name+A.country);
Person.print();
Person B=new Person37();
B.name="ddf";
System.out.println(B.name+B.country);//因为country是静态成员变量,B无需重新赋值,直接共享使用
Person.print();
}
}
class Person{
String name;
static String country;//country可以看成是共享数据,因此用static修饰,变成静态成员变量
static void print(){ //没有访问到对象特有数据,因此可以定义成静态方法
System.out.println("你好");
}
}
本文详细介绍了Java中static关键字的作用、特点以及如何在不同场景下使用static成员变量和静态方法。通过实例展示了static成员如何实现类共享数据,并解释了静态成员与非静态成员的区别。
1343

被折叠的 条评论
为什么被折叠?



