一、他是什么?
Static 静态的 修饰符 相当于中文里面的形容词
二、他能修饰些什么?
1.属性:
- 静态属性,表示整个类型共享一份的属性,不是每个对象都有一份的属性。依赖于对象存在。(可能有点绕,直接上代码)。
![在这里插入图片描述](https://img-blog.csdnimg.cn/bbb21bd9988542b9ac3879cd98bf84d3.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3NjM3MjExNTg=,size_16,color_FFFFFF,t_70
例如7行 s1.country = “西边的德国”; 如果没有18行 static修饰符的共享属性。 打印的结果就会是
所以在采用static的时候需要判断,哪些属性是需要加,哪些是不需要加的。
如果是需要大家(多个)访问同一个需要加static;
如果这个属性是每个人都有一份的就不要添加。
![在这里插入图片描述](https://img-blog.csdnimg.cn/d579e6df142245b591f5fc3c693fade4.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3NjM3MjExNTg=,size_16,color_FFFFFF,t_70
2.方法:
- 静态方法:需要拿类名去调用;
-
优点:直接拿类名调用
-
缺点:只能直接访问静态成员,如果在静态方法里面访问非静态的成员,需要创建对象,拿着对象去调用
- 普通方法:需要拿对象去调用;
优点:普通方法里面既可以直接调用静态成员也可以直接调用非静态成员;
缺点:方法调用的时候需要先创建对象
3.代码块:
-代码块:初始化一个普通属性 当我们想要初始化一个静态属性 需要使用静态代码块
- 静态代码块:当类被第一次加载的时候执行,而且只执行一次
- 普通代码块:当创建对象的时候执行,创建几个对象执行几次 欢迎使用Markdown编辑器