static
简介
static表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量。
- 被static修饰的成员变量,叫做静态变量。
- 特点:
- 被该类的所有对象共享。
- 不属于对象,属于类。
- 随着类的加载而加载,优先于对象存在。
- 调用方式:
- 类名调用(推荐)。
- 对象名调用。
- 特点:
- 被static修饰的成员方法,叫做静态方法。
- 特点:
- 多用在测试类和工具类中。
- JavaBean类中很少使用。
- 调用方式:
- 类名调用(推荐)。
- 对象名调用。
- 特点:
static注意事项
- 静态方法中只能访问静态;
- 非静态方法可以访问所有;
- 静态方法中没有this关键字;
final
被final修饰
- 方法:表明该方法是最终方法,不能被重写;
- 类:表明这个类是最终类,不能被继承;
- 变量:叫做常量,只能被赋值一次;
常量
实际开发中,常量一般作为系统配置的信息,方便维护,提高可读性。
常量的命名规范:
- 单个单词:全部大写
- 多个单词:全部大写,单词之间用下划线隔开
细节
- final修饰的变量是基本类型:那么变量存储的数据值不能发生改变。
- final修饰的变量是引用类型:那么变量存储的地址值不能发生改变,对象内部的可以改变。
权限修饰符
分类:有四种作用范围由小到大(private<缺省/默认<protected<public)
| 修饰符 | 同一个类中 | 同一个包中其他类 | 不同包下的子类 | 不同包下的无关类 |
|---|---|---|---|---|
| private(私有) | √ | × | × | × |
| 缺省(默认) | √ | √ | × | × |
| protected(受保护) | √ | √ | √ | × |
| public(公共) | √ | √ | √ | √ |
代码块
局部代码块:
public class Test01 {
public static void main(String[] args) {
{
int a = 0;
System.out.println(a);
}
}
}
构造代码块:写在成员位置的代码块,可以把多个构造方法中重复的代码抽取出来,构造代码块优先于构造方法执行。
public class Student {
int age;
String name;
{
System.out.println("开始创建对象了。。。。。。");
}
public Student() {
}
public Student(int age, String name) {
this.age = age;
this.name = name;
}
}
静态代码块:随着类的加载而加载、并且自动触发、只执行一次。
public class Student {
int age;
String name;
static {
System.out.println("开始创建对象了。。。。。。");
}
public Student() {
}
public Student(int age, String name) {
this.age = age;
this.name = name;
}
}